繁体   English   中英

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

[英]How to get all equivalent branches on git working copy?

使用git branch我只能将一个分支作为“当前”分支,即使签出的提交与多个分支匹配。

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

master upstream/master origin/master

如何从git本身提取这些信息?

我想在我的提示中看到这一点(当我正在努力推出代码时,我知道我的工作副本与上游/主人一致是很重要的)。 是否有任何命令行工具可以提供这些信息?

目前我的bash提示包括

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

它只会显示“(master)”(即本地分支)。

git log -1 --pretty=%D

会得到你的文字

git branch --all --contains HEAD
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.

如果您还希望看到其他引用(例如标记)或在脚本中使用结果,则存在变体 - 在这种情况下,您不希望乱用sed只是为了删除不必要的东西:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM