参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?

如何知道本地分支正在跟踪哪个远程分支?

我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?


当前回答

grep 'BRANCH_NAME'

git branch -vv:该部分将显示所有本地分支及其上游分支。

grep 'BRANCH_NAME':它将从分支列表中过滤当前分支。

其他回答

我不知道这是否算作解析git配置的输出,但这将确定master正在跟踪的远程服务器的URL:

$ git config remote.$(git config branch.master.remote).url

这是一个命令,给你所有的跟踪分支(配置为'pull'),请参阅:

$ git branch -vv
  main   aaf02f0 [main/master: ahead 25] Some other commit
* master add0a03 [jdsumsion/master] Some commit

您必须费力地浏览SHA和任何长包装提交消息,但它可以快速输入,并且我在第三列中垂直对齐跟踪分支。

如果你需要每个分支的“拉”和“推”配置的信息,请参阅git remote show origin上的另一个答案。


更新

从git 1.8.5版本开始,你可以用git status和git status -sb来显示上游分支

还有另一种方法

git status -b --porcelain

这会给你

## BRANCH(...REMOTE)
modified and untracked files
git branch -vv | grep 'hardcode-branch-name'
# "git rev-parse --abbrev-ref head" will get your current branch name
# $(git rev-parse --abbrev-ref head) save it as string
#  find the tracking branch by grep filtering the current branch 
git branch -vv | grep $(git rev-parse --abbrev-ref head)

你可以试试这个:

git remote show origin | grep "branch_name"

Branch_name需要替换为您的分支