簡體   English   中英

如何找到在git中檢出的最后一個分支

[英]How to find the last branch checked out in git

我們可以使用git checkout -簽出最后一個分支git checkout -但是有沒有辦法找出最后一個分支是什么而不是檢查出來?

編輯:我已經發現我可以使用:

git reflog | grep -i "checkout: moving"|head -1|cut -d' ' -f6

但我想知道是否有一個直接簡單的命令。 我正在更新問題以反映這一需求。 抱歉不夠清楚

您的示例輸出(由git reflog | ... )使其足夠清晰。

git rev-parse命令可以與參考查找語法結合使用,一次完成:

$ git rev-parse --symbolic-full-name @{-1}
refs/heads/stash-exp
$ git rev-parse --abbrev-ref @{-1}
stash-exp

請注意, gitrevisions文檔描述了@{- N }語法。 還要注意,如果沒有第N個前一個分支,則rev-parse默默地打印任何內容:

$ git rev-parse --abbrev-ref @{-2} && echo ok || echo fail
master
ok
$ git rev-parse --abbrev-ref @{-3} && echo ok || echo fail
ok

當然,在您可能需要名稱的大多數地方,您可以直接使用@{-1}語法。

git reflog是你想要使用的。 在這里,你會發現:

  • 你最后提交的內容(用“提交”表示)
  • 你檢查了什么(用“結賬”表示)
  • 當你拉(用“拉”表示)

你在這里檢查的內容非常重要; reflog將使用以“checkout”表示的格式,並在查看特定分支時指定“從A移動到B”。

一個簡單的grep for“checkout:moving”會給你一個你去過的分支列表; 最后一個是在頂部。

完整命令:

git reflog | grep -i "checkout: moving"

使用grep -m來限制結果:

git reflog | grep -i “checkout: moving” -m 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM