[英]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.