2012-08-16 27 views
17

我想看看過去的特定提交文件,我在考慮git reset --hard但我不能看到超出該提交的提交承諾。我如何回到提交(連同文件的狀態),查看文件,再次訪問現在?回到一個特定的提交然後回到現在

+1

你總是可以只用'git show commit:path/file'來查看一個文件。 – fork0 2012-08-16 13:28:44

+0

我看了好幾個文件,嘿嘿。我更喜歡用文本編輯器。謝謝,下次會很方便! – Michelle 2012-08-16 14:10:53

回答

31

假設你的當前分支是master和老提交是a1b2c3,那麼你就可以在你的工作樹改變所有的文件回到舊有承諾:

git checkout a1b2c3 

...並返回到master與:

git checkout master 

使用Git的歷史跳來跳去(即檢查出其對象名,又稱其散列或SHA1SUM提交)的這種方式是查找此前的良好承諾爲非常有用例如,0,因爲它不會移動你的分支。

有一點需要記住的是,當你這樣做時你會得到一個可能令人困惑的警告:如果你檢出一個來自它的對象名稱(a1b2c3)的提交,它會讓你進入一個被稱爲「detached HEAD」 ,其中HEAD通常表示您當前的分支,而不是直接指向特定的提交。這並不值得擔心 - 這對於在歷史中移動非常有用 - 但它確實意味着如果在HEAD分離時創建新的提交,它們將不會向前移動分支。


fork0在潛在有用的快捷git checkout -下面的評論,這將簽出先前的分支或提交該HEAD指着指出。

+0

男人我在想什麼?謝謝。 – Michelle 2012-08-16 13:12:39

+0

沒問題 - 我希望我添加的附加評論有用。 – 2012-08-16 13:19:20

+4

還有一種更安全的方法可以回到之前的提交:'git checkout -'。此方法使用checkout日誌記錄(.git/logs/HEAD)並可以安全地確定以前的提交。 – fork0 2012-08-16 13:26:41

相關問題