为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
喵喵时光机 2019-08-28 16:41:24
如何查看哪些Git分支正在跟踪哪个远程/上游分支?我知道我能做到git branch --all,这向我展示了本地和远程分支,但是向我展示它们之间的关系并没有那么有用。如何以显示哪个本地分支正在跟踪哪个远程的方式列出分支?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

git remote show origin

将“原点”替换为遥控器的名称。


查看完整回答
反对 回复 2019-08-28
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

如果您查看手册页git-rev-parse,您将看到描述以下语法:


<branchname>@{upstream},例如master@{upstream},@{u}


@{upstream}branchname(简短形式  <branchname>@{u})的后缀是指由branchname指定的分支设置为在其上构建的分支。缺少的branchname默认为当前的。


因此,要找到分支的上游master,您可以:


git rev-parse --abbrev-ref master@{upstream}

# => origin/master

要打印出每个分支的信息,您可以执行以下操作:


while read branch; do

  upstream=$(git rev-parse --abbrev-ref $branch@{upstream} 2>/dev/null)

  if [[ $? == 0 ]]; then

    echo $branch tracks $upstream

  else

    echo $branch has no upstream configured

  fi

done < <(git for-each-ref --format='%(refname:short)' refs/heads/*)


# Output:

# master tracks origin/master

# ...

这比手动解析refs和config更干净。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 3622 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信