2012-08-14 72 views
2

我有一个分支机构和一个分支机构。git reset --hard <sha1>。这是否删除了一切?

我有一个提交SHA1 ID说在开发4356xyz。我希望能够处于前沿。所以,我检查了前沿,做

git reset --hard 4356xyz

现在,当我做git log我看到两个分支的历史已经成为一致。 有没有一种方法可以让我在复位前恢复先前分支的历史?

+0

你觉得'git reset --hard'会做什么? – meagar 2012-08-14 05:34:43

+0

我以为它会做樱桃采摘..'git cherry-pick 4356xyz'。后来才发现,将头指向该提交。 – 2012-08-14 06:47:58

回答

5

git reset --hard 4356xyz已将您的cutting-edge分支指向该提交。如果这与dev指向的是相同的提交,那么是的,它们将共享相同的历史,因为它们现在指向相同的提交。

您可以检查git reflog找出你的分支cutting-edge指出之前你叫去点它在提交4356xyz。在未来,如果您想要将一个分支的提交添加到另一个分支,您需要合并分支或挑选特定的提交。

要拉只是提交4356xyz,你会git checkout cutting-edge然后git cherry-pick 4356xyz

4

是的,您可以使用git reflog命令来显示分支头的位置。选择你想要的提交,并用该提交使用git reset --hard

相关问题