52

我想查看过去某个特定提交的文件,我正在考虑,git reset --hard但我将无法看到该提交之外的提交。我如何回到提交(连同文件的状态),查看文件,然后再回到现在?

4

1 回答 1

78

假设您的当前分支是master旧提交是a1b2c3,那么您可以将工作树中的所有文件更改回旧提交:

git checkout a1b2c3

...并返回master

git checkout master

这种在您的 git 历史记录中跳跃的方式(即使用其对象名称检查提交,也称为其哈希或 SHA1sum)对于查找先前的良好提交非常有用git bisect,例如,因为它不会移动您的分支.

需要记住的一件事是,在执行此操作时,您可能会收到一个令人a1b2c3困惑的警告:如果您从其对象名称 (HEAD代表您当前的分支,而是直接指向特定的提交。这没什么好担心的——它对于在你的历史中移动非常有用——但这确实意味着如果你在HEAD分离时创建新的提交,它们不会向前移动分支。


fork0在下面的注释中指出了可能有用的快捷方式git checkout -,它将检查HEAD指向的上一个分支或提交。

于 2012-08-16T13:09:40.593 回答