我正在使用git。考虑一下我在提交的历史中有这些:
提交847a363f6676bf5d07c42d6ebec834fea1c9a363
提交7b0720d5629ae0169fa2be17716ab736c0addeb0
我当前的提交(当前提交的最新更改)哈希 847a363f6676bf5d07c42d6ebec834fea1c9a363 。
在某个时间点,我决定删除目录中的当前文件,并使用此命令恢复之前的提交:
$ git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0
但是过了一段时间我忘记了上次检查的提交。 我怎么知道?
答案 0 :(得分:4)
git reflog
将显示您的整个工作树。它会随时记录您回购中所有已提交或已被引用的提交。
$ git reflog
切换回上次结账前的任何内容。
$ git checkout - # back to last checkout
答案 1 :(得分:2)
找出当前签出的提交的方法很少
git reflog
您也可以随时使用reflog。 git reflog将显示更新HEAD的任何更改,并且检出所需的reflog条目会将HEAD设置回此提交。
每次修改HEAD时,reflog中都会有一个新条目
git reflog
git checkout HEAD@{...}
#This will get you back to your desired commit
另一种方式:因为你处于分离的HEAD
git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0
您可以随时查看您所使用的最新分支并返回最新提交。
git worktree
git worktree
允许您同时处理多个分支,因此您无需更改和切换提交,只需创建一个工作树,您将有一个新的3状态,您可以在其中切换和签出任何分支等。