2012-08-16 34 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

相关问题