此答案说明如何结帐到上一个分支,并帮助解释@{-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会有所帮助,因为它可以帮助提醒我以前的工作环境,但我不知道该怎么做。
答案 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命令链接。