如何在Git中获取分支的远程跟踪分支?

3
例如,假设master正在追踪origin/master。我该如何让Git告诉我master正在以对编程有用的方式追踪origin/master
<fill-in-the-blank> master

显然我所需要的只是@{u}。感谢@AndrewC! - Schwern
2个回答

2

如果您正在编写脚本,最好的方法是调用配置文件。

git config --get branch.${BRANCH}.remote
git config --get branch.${BRANCH}.merge 

如果您只对当前检出的分支感兴趣,那么git提供了特殊引用@{u}来引用当前上游。在使用之前,请使用rev-parse确保其有效。

如果您只是在终端输入,则可以使用git branch -vv


谢谢,这是我目前为止的成果。除了进行搜索和替换之外,有没有更好的方法将ref/heads/blah转换为blah - Schwern

0

最简单的方法是:

git branch -vv

返回一个类似于输出的结果

* master 5a24820 [origin/master]  commitmsg

如果你正在运行shell脚本,而你只想要远程分支:

git branch -vv | grep -oP '\[.+\]'

你也可以使用以下命令: git remote show origin 它会显示你的远程 origin 仓库的信息。

e.g:

Remote branch:
  master tracked   Local branch configured for 'git pull':
  master merges with remote master

主分支与远程主分支合并 时,说明你的主分支正在跟踪 origin\master。虽然不太优雅,但这是事实。


那会返回很多东西,我不知道主程序是否追踪源头。 - Schwern
更接近了,但我需要对丑陋的输出进行大量解析,而我想避免这种情况。 - Schwern
我建议使用管道和grep命令可以帮助你。恐怕没有更贴近你需求的命令了。 - Mike Vella
1
Mike - 在脚本中依赖于git branch是不被鼓励的。请参阅http://git-blame.blogspot.com/2013/06/checking-current-branch-programatically.html。 - Andrew C
非常有趣 - 感谢 @AndrewC - Mike Vella
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接