我知道我可以做git分支——所有,它显示了本地和远程分支,但它在显示它们之间的关系时并不是那么有用。
如何以显示哪个本地分支正在跟踪哪个远程的方式列出分支?
我知道我可以做git分支——所有,它显示了本地和远程分支,但它在显示它们之间的关系时并不是那么有用。
如何以显示哪个本地分支正在跟踪哪个远程的方式列出分支?
当前回答
这是一个非常瓷的命令,如果你想用它来编写脚本,那就不好了:
git branch -vv # doubly verbose!
注意,在git 1.8.3中,上游分支显示为蓝色(参见“git中这个分支跟踪(如果有的话)是什么?”)
如果你想要干净的输出,请参阅Carl Suster的答案——它使用了一个瓷器命令,我不相信在我最初写这个答案的时候还存在这个命令,所以它更简洁一点,并且可以与配置为rebase的分支一起工作,而不仅仅是合并。
其他回答
Git远程显示来源
将“origin”替换为遥控器的任何名称。
这是一个非常瓷的命令,如果你想用它来编写脚本,那就不好了:
git branch -vv # doubly verbose!
注意,在git 1.8.3中,上游分支显示为蓝色(参见“git中这个分支跟踪(如果有的话)是什么?”)
如果你想要干净的输出,请参阅Carl Suster的答案——它使用了一个瓷器命令,我不相信在我最初写这个答案的时候还存在这个命令,所以它更简洁一点,并且可以与配置为rebase的分支一起工作,而不仅仅是合并。
kubi的另一个答案是看一下.git/config文件,它显示了本地存储库的配置:
油漆git -配置。
git for-each-ref --format='%(refname:short) <- %(upstream:short)' refs/heads
将为每个本地分支显示一行。一个跟踪分支看起来像这样:
master <- origin/master
一个非跟踪的是这样的:
test <-
根据奥利维尔·雷法洛的回答
if [ $# -eq 2 ]
then
echo "Setting tracking for branch " $1 " -> " $2
git branch --set-upstream $1 $2
else
echo "-- Local --"
git for-each-ref --shell --format="[ %(upstream:short) != '' ] && echo -e '\t%(refname:short) <--> %(upstream:short)'" refs/heads | sh
echo "-- Remote --"
REMOTES=$(git remote -v)
if [ "$REMOTES" != '' ]
then
echo $REMOTES
fi
fi
它只显示配置了轨道的本地。
把它写在你的路径上一个叫做git-track的脚本上,你会得到一个git track命令
https://github.com/albfan/git-showupstream上有更详细的版本