如何在 git 工作副本上获取所有等效的分支?



有了git branch,我只能得到一个分支作为"当前"分支,即使签出的提交匹配多个分支。

在像tig这样的工具中,指向同一提交的所有分支。例如:

master upstream/master origin/master

如何从git本身中提取此信息?

我想在我的提示符上看到这一点(对我来说,当我正在推送代码时,知道我的工作副本与上游/主版本一致是很重要的(。是否有任何命令行工具可以给我此信息?

目前我的 bash 提示包括

/usr/bin/git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/ (1)/'

只会显示"(主("(即本地分支(。

git log -1 --pretty=%D

会给你文字

git branch --all --points-at HEAD

是根据手册您要查找的内容:

-a, --all
List both remote-tracking branches and local branches.
--points-at <object>
Only list branches of the given object.

如果您还想查看其他 ref(例如标签(或在脚本中使用结果,则存在变体 - 在这种情况下,您不想为了删除不必要的东西而弄乱sed

> git for-each-ref --points-at HEAD --format="%(refname:short)" refs/heads refs/remotes
master
otherbranch
origin/master
origin/HEAD
git branch --all --contains HEAD

最新更新