2012-08-14 106 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