我有一个具有6个提交的分支(mybranch)。 6次提交后,我想还原最近的3次提交。因此,我使用git checkout 3978bf85d8a05653c927cfabdf8c018167faf363
检出了sha,可以看到最近3次提交都已还原。现在,我想以此更新mybranch。我该怎么办?
(hase) root@ajain1:~/hase# git status
HEAD detached at 3978bf8
nothing to commit, working directory clean
答案 0 :(得分:4)
如果您要“强制”特定分支指向特定的提交/ ID,只需执行以下操作:
git checkout mybranch
git reset --hard 3978bf8
它将更新mybranch
以直接指向该提交。
答案 1 :(得分:1)
您可能会发现此answer有用,这说明应该添加新的提交以还原以前的提交,以保留分支的历史记录。
一种方法是在要还原的3个提交上调用$ git revert --no-commit commitHash
,然后调用$ git commit -m "the commit message"
。
另一种解决方案是签出您不想还原的最后一次提交(称为A)的内容,然后提交此状态,可以先使用$ git checkout -f A --
,再执行{{1} }
答案 2 :(得分:1)
由于HEAD已分离并且当前指向提交3978bf8,因此可以在提交时创建新分支。您可以将此分支合并到分支mybranch
。
git branch new_branch_name
git checkout mybranch
git merge new_branch_name