2013-12-08 29 views
0

通過GitHub的問題去後,我發現新的commit 可能負責斷碼,我想通過做這樣的事情,以確認這種懷疑:我怎樣的git結帳一次提交之前的特定承諾

git checkout --one-prior f1962b3cc771184a471e1350fa280d80d5fdd09d

+1

https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html – SLaks

+0

也可能是值得看的'混帳bisect'爲追捕重大更改:https://www.kernel.org/pub/software/scm/git/docs/git-bisect.html – Chris

+0

克里斯感謝提醒我學習如何'git bisect'魔術作品 – Milktrader

回答

2

在這裏你去:

git checkout f1962b3cc771184a471e1350fa280d80d5fdd09d^ 

通知的^末。這意味着一個修訂落後。

例如,這將是後面5次修訂:

git checkout f1962b3cc771184a471e1350fa280d80d5fdd09d^^^^^ 

...相當於:

git checkout f1962b3cc771184a471e1350fa280d80d5fdd09d~5 

順便說一句,當你這樣做,你會在一個分離的頭州。輸出解釋了這一點,這是非常有趣和值得一讀:

您在「分離的頭」狀態。您可以環視,製作 實驗性更改並提交它們,並且您可以放棄您在此狀態下進行的任何提交 而不影響任何分支,方法是執行 另一個結帳。

如果您想創建一個新分支來保留您創建的提交,您可以通過再次使用-b和checkout命令(現在或以後)來執行此操作(現在或以後)。 例子:

git checkout -b new_branch_name 
+0

哇,這是很快。我還在編輯格式! – Milktrader