git reset --hard <sha1>。那删除了一切吗?</sha1>

时间:2012-08-14 05:32:59

标签: git github

我有一个分支机构和一个分支机构。

我在开发时提交了SHA1 id,说4356xyz。我希望它能走在前沿。所以我检查了最前沿并做了

git reset --hard 4356xyz

现在当我git log时,我看到两个分支的历史都变得相同。 在我进行重置之前,有没有办法可以恢复先前的尖端分支历史?

2 个答案:

答案 0 :(得分:5)

git reset --hard 4356xyz带走了你的cutting-edge分支,并将其指向该提交。如果那是dev指向的同一个提交,那么是的,它们将共享相同的历史记录,因为它们现在指向同一个提交。

您可以检查git reflog以确定您的分支cutting-edge在之前指向的内容,并将其指向提交4356xyz

将来,如果你想将一个分支的提交添加到另一个分支,你需要合并你的分支,或者挑选特定的提交。

要提取 提交4356xyz,您需要git checkout cutting-edge然后git cherry-pick 4356xyz

答案 1 :(得分:4)

是的,您可以使用git reflog命令显示分支头的位置历史记录。选择您想要的提交,并在该提交中使用git reset --hard