13

这个答案告诉如何结帐到上一个分支,并有助于解释@{-1}https ://stackoverflow.com/a/7207542/3150057

如果我在更改分支之前存储了一些代码,那么前一个分支很重要,现在我正在考虑处理存储。

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


更多信息:

这是我忘记以前工作环境的一个解决方案,这种情况通常发生在午饭回来后。

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

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

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

4

2 回答 2

10

如果你只想要名字,你可以使用:

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 命令链接。

于 2020-01-16T09:19:08.423 回答
8

也许这就是你想要的:

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

git-describe手册页:

--all

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

例如,如果我这样做:

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

我懂了:

heads/mybranch
于 2016-11-04T14:25:59.533 回答