有没有办法输出以前的git分支名称?

时间:2016-11-04 14:16:35

标签: git branch git-checkout git-stash git-reflog

此答案说明如何结帐到上一个分支,并帮助解释@{-1}https://stackoverflow.com/a/7207542/3150057

如果我在更改分支之前隐藏了一些代码,之前的分支很重要,现在我正在考虑使用存储。

有没有办法快速查看上一个分支的名称而不搜索git reflog show最新的checkout: moving from foo to bar条目?

更多信息:

这是我忘记之前工作环境的解决方案,通常在午餐后回来。

git rev-parse @{-1}显示将由git checkout -检出的分支的HEAD提交,但不显示分支名称。

git branch --contains @{-1}将列出该提交的每个分支。

将具有该提交的分支列为HEAD会有所帮助,因为它可以帮助提醒我以前的工作环境,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:6)

也许这就是你想要的:

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

来自git-describe手册页:

  

--all

     

不使用带注释的标签,而是使用refs /中找到的任何引用   命名空间。此选项可以匹配任何已知分支,   远程跟踪分支或轻量级标记。

例如,如果我这样做:

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

我明白了:

heads/mybranch

答案 1 :(得分:3)

如果只需要名称,则可以使用:

git name-rev $(git rev-parse @{-1}) --name-only

例如:

$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch

比接受的答案更好,因为它的名称中没有显示“ heads”,因此可以与其他git命令链接。