2016-11-04 126 views
2

這個答案將告訴您如何結帳以前的分支,有益解釋@{-1}https://stackoverflow.com/a/7207542/3150057有沒有辦法輸出以前的git分支名稱?

以前的分支是重要的,如果我改變分支前藏匿了一些代碼,我現在想的藏匿處工作。

有沒有辦法快速查看前一個分支的名稱,而不需要搜索git reflog show以獲得最新的checkout: moving from foo to bar條目?


更多信息:

這是我的我以前的工作背景下,這通常是從午飯回來後會發生的健忘的解決方案。

git rev-parse @{-1}顯示將通過git checkout -檢出的分支的HEAD提交,但不支持分支名稱。

git branch --contains @{-1}將使用該提交列出每個分支。

將該提交列爲HEAD的分支會很有幫助,因爲它可以幫助提醒我以前的工作環境,但我不知道該怎麼做。

回答

3

也許這是你想要什麼:

git describe --all $(git rev-parse @{-1}) 

git-describe手冊頁:

--all

而不是隻使用註釋標籤,用在裁判發現任何REF/ 命名空間。該選項可以匹配任何已知分支,遠程跟蹤分支或輕量級標籤。

因此,舉例來說,如果我這樣做:

$ git checkout mybranch 
$ git checkout master 
$ git describe --all $(git rev-parse @{-1}) 

我看到:

heads/mybranch 
+1

這就行了,謝謝!我能夠使用'git describe --all @ { - 1}'獲得相同的結果。 –

+0

獲取'致命的:不是有效的對象名稱@ { - 1}':( – Hlung

+0

'@ { - 1}'指的是「分支/提交在當前之前檢出」如果您只使用過單個分支(例如'master'),那麼就沒有「上一個分支」,你會得到你描述的錯誤。試試'git checkout -b testbranch',然後看看'@ { - 1}'指的是什麼。 – larsks

相關問題