2016-11-04 63 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

相关问题