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



这个答案告诉了如何签出到前一个分支,并帮助解释了@{-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}将列出每个提交的分支。

将该提交的分支(es)列出为HEAD将是有帮助的,因为它可以帮助提醒我以前的工作环境,但我不确定如何做到这一点。

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

git rev-parse --symbolic-full-name --abbrev-ref=loose @{-1}

例如:

$ git checkout mybranch
$ git checkout master
$ git rev-parse --symbolic-full-name --abbrev-ref=loose @{-1}
> mybranch

它比被接受的答案更可取,因为它没有显示"头";在名称中,这样它可以与其他git命令链接。

警告

上一个答案使用

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

只在分支有不同的提交时起作用。否则它可能返回错误的分支

也许这就是你想要的:

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

相关内容

  • 没有找到相关文章

最新更新