我想查看过去某个特定提交的文件,我正在考虑,git reset --hard
但我将无法看到该提交之外的提交。我如何回到提交(连同文件的状态),查看文件,然后再回到现在?
问问题
26175 次
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 回答