如何在Git中获取当前分支中的最新头名称?

如何在Git中获取当前分支中的最新头名称?,git,Git,例如,在Linux内核的git工作树中 $ git checkout v2.6.6 $ git checkout v3.3 如何在当前分支v3.3中查找最后的头名称或HASHID?在上面的示例中,它应该获得v2.6.6或v2.6.6的HASHID 谢谢。每次移动头部时,git都会将其记录在reflog中 $ git reflog 如果要在问题中的命令之后运行此命令,那么旧的提交散列将位于下面的第二行,并将引用要移动到的标记 比如说 ff06760 HEAD@{0}: checkout: mo

例如,在Linux内核的git工作树中

$ git checkout v2.6.6
$ git checkout v3.3
如何在当前分支v3.3中查找最后的头名称或HASHID?在上面的示例中,它应该获得v2.6.6或v2.6.6的HASHID


谢谢。

每次移动头部时,git都会将其记录在
reflog

$ git reflog
如果要在问题中的命令之后运行此命令,那么旧的提交散列将位于下面的第二行,并将引用要移动到的标记

比如说

ff06760 HEAD@{0}: checkout: moving from 9b49c22462f5dd73ff18eacff5983f141f98cb82 to v3.3
9b49c22 HEAD@{1}: checkout: moving from ff06760cd0db8cef49915e68886c66c09b1cade1 to v2.6.6

根据Blake Taylor的回答,最后一个
HEAD
位置始终是
HEAD@{1}
,但这种类型的修订规范比这更强大:

git checkout HEAD@{n} ;# checkout the nth prior position of HEAD
git checkout HEAD@{"1 hour ago"} ;# checkout HEAD an hour back
git checkout master@{"yesterday"} ;# checkout yesterday's master
git checkout master@{"1 week ago"} ;# checkout last week's
git checkout @{-1} ;# checkout the last branch checked out
git checkout @{-n} ;# checkout the nth last branch
我个人最喜欢的是:

git checkout :/"<regex>" ;# checkout the youngest commit matching <regex>
了解这些参照规范可以轻松浏览历史记录

git checkout :/"Case 959" ;# see the state when we fixed case 959
git checkout :/"ct/topic" ;# checkout the state when 'ct/topic' was merged
git checkout :/"^Hotfix" ;# checkout the most recent commit that started 'Hotfix'