HEAD在sha1分离

时间:2019-06-21 00:57:16

标签: git github

我有一个具有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

3 个答案:

答案 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