回到特定的提交然后回到现在

时间:2012-08-16 13:01:46

标签: git

我想在过去看到来自特定提交的文件,我正在考虑git reset --hard但是我将无法看到超出该提交的提交。如何返回提交(连同文件状态),查看文件,再次转到现在?

1 个答案:

答案 0 :(得分:53)

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

git checkout a1b2c3

...并使用以下内容返回master

git checkout master

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

要记住的一件事是,在执行此操作时,您将收到一个可能令人困惑的警告:如果您从其对象名称(a1b2c3)检出提交,这将使您进入一个称为“分离的HEAD“,其中HEAD通常代表您当前的分支,而是直接指向特定的提交。这不是值得担心的 - 它对于在历史记录中移动非常有用 - 但它确实意味着如果在分离HEAD时创建新提交,它们将不会向前移动分支。


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