Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何知道上次签出的是哪个提交?_Git_Git Log_Git Checkout - Fatal编程技术网

Git 如何知道上次签出的是哪个提交?

Git 如何知道上次签出的是哪个提交?,git,git-log,git-checkout,Git,Git Log,Git Checkout,我正在使用git。我在我的履历中有这些: 提交847a363f6676bf5d07c42d6ebec834fea1c9a363 提交7B0720D5629AE0169FA2BE17716AB736C0ADEB0 我当前的提交(具有最新更改的当前提交)哈希值为847a363f6676bf5d07c42d6ebec834fea1c9a363 在某个时间点,我决定删除目录中的当前文件,并使用以下命令恢复以前的提交: $ git checkout 7b0720d5629ae0169fa2be17716

我正在使用git。我在我的履历中有这些:

提交847a363f6676bf5d07c42d6ebec834fea1c9a363

提交7B0720D5629AE0169FA2BE17716AB736C0ADEB0

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

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

$ git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0

但过了一段时间,我忘记了上次签出的是哪个提交我怎么知道呢?

git reflog
将显示整个工作树。它随时记录回购协议中引用的所有提交

$ git reflog   
切换回上次结账前的状态

$ git checkout -            # back to last checkout   

有几种方法可以确定当前签出了哪个提交

1. <代码>git reflog 您也可以随时使用reflog。 git reflog将显示更新头部的任何更改,签出所需的reflog条目将使头部返回到该提交

每次修改头部时,reflog中将有一个新条目

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


2.结帐前分行 另一种方式:由于您处于分离的
头部

git checkout 7b0720d5629ae0169fa2be17716ab736c0addeb0
您始终可以签出您所处理的最新分支,然后返回到最新提交


3. <代码>git工作树
git-worktree
允许您同时处理多个分支,这样您就不必更改和切换提交,您只需创建一个工作树,您将拥有一个新的3种状态,您可以在其中切换和签出您喜欢的任何分支


为此,请尝试使用
git reflog
+1@sajib khan和@CodeWizard