参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
当前回答
这是一个命令,给你所有的跟踪分支(配置为'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来显示上游分支
其他回答
我使用EasyGit(又名:EasyGit)。"eg")作为Git顶部(或旁边)的超轻量级包装器。EasyGit有一个“info”子命令,它为您提供各种超级有用的信息,包括当前分支的远程跟踪分支。下面是一个例子(当前分支名称是"foo"):
pknotz@s883422: (foo) ~/workspace/bd $ eg info Total commits: 175 Local repository: .git Named remote repositories: (name -> location) origin -> git://sahp7577/home/pknotz/bd.git Current branch: foo Cryptographic checksum (sha1sum): bd248d1de7d759eb48e8b5ff3bfb3bb0eca4c5bf Default pull/push repository: origin Default pull/push options: branch.foo.remote = origin branch.foo.merge = refs/heads/aal_devel_1 Number of contributors: 3 Number of files: 28 Number of directories: 20 Biggest file size, in bytes: 32473 (pygooglechart-0.2.0/COPYING) Commits: 62
这将显示你所在的分支:
$ git branch -vv
这将只显示你所在的当前分支:
$ git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)
例如:
myremote/mybranch
您可以找到当前分支所使用的远程URL:
$ git remote get-url $(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)|cut -d/ -f1)
例如:
https://github.com/someone/somerepo.git
我不知道这是否算作解析git配置的输出,但这将确定master正在跟踪的远程服务器的URL:
$ git config remote.$(git config branch.master.remote).url
如果你想找到任何分支的上游(而不仅仅是你所在的分支),这里是对@cdunn2001的答案的轻微修改:
git revv -parse——abbrev-ref——symbol -full-name
这将为名为YOUR_LOCAL_BRANCH_NAME的本地分支提供远程分支名称。
grep 'BRANCH_NAME'
git branch -vv:该部分将显示所有本地分支及其上游分支。
grep 'BRANCH_NAME':它将从分支列表中过滤当前分支。