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

How do I get the remote tracking branch for a branch in Git?

例如,假设 master 正在跟踪 origin/master。我怎样才能让 Git 告诉我 master 正在以对程序有用的方式跟踪 origin/master

<fill-in-the-blank> master

最简单的方法是:

git branch -vv

哪个returns输出像

* master 5a24820 [origin/master]  commitmsg

如果您是 运行 shell 脚本并且您只需要远程分支:

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

您也可以使用以下命令:

git remote show origin

显示远程源存储库的信息。

例如:

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

master merges with remote master 告诉您 origin\master 正在被您的主分支跟踪。虽然它不是很优雅。

由于您是在脚本中执行此操作,因此最好的方法是调用配置

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

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

如果您只是在终端输入,那么 git branch -vv 是正确的选择