如何知道上次检出哪个提交?

时间:2017-01-14 01:52:09

标签: git git-log git-checkout

我正在使用git。考虑一下我在提交的历史中有这些:

  

提交847a363f6676bf5d07c42d6ebec834fea1c9a363
  
  提交7b0720d5629ae0169fa2be17716ab736c0addeb0

我当前的提交(当前提交的最新更改)哈希 847a363f6676bf5d07c42d6ebec834fea1c9a363

在某个时间点,我决定删除目录中的当前文件,并使用此命令恢复之前的提交:

$ git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0

但是过了一段时间我忘记了上次检查的提交。 我怎么知道?

2 个答案:

答案 0 :(得分:4)

git reflog将显示您的整个工作树。它会随时记录您回购中所有已提交或已被引用的提交。

$ git reflog   

切换回上次结账前的任何内容。

$ git checkout -            # back to last checkout   

答案 1 :(得分:2)

找出当前签出的提交的方法很少

1。 git reflog

您也可以随时使用reflog。 git reflog将显示更新HEAD的任何更改,并且检出所需的reflog条目会将HEAD设置回此提交。

每次修改HEAD时,reflog中都会有一个新条目

git reflog
git checkout HEAD@{...}
#This will get you back to your desired commit

2。 Checkout prevoius分支

另一种方式:因为你处于分离的HEAD

git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0

您可以随时查看您所使用的最新分支并返回最新提交。

3。 git worktree

git worktree允许您同时处理多个分支,因此您无需更改和切换提交,只需创建一个工作树,您将有一个新的3状态,您可以在其中切换和签出任何分支等。