参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
当前回答
另一种简单的方法是使用
Cat .git/config在一个git回购
这将列出本地分支的详细信息
其他回答
不使用grep只显示当前分支信息:
git branch -vv --contains
这是缩写:
git branch -vv --contains HEAD
如果你当前的HEAD的提交id在其他分支中,这些分支也会显示。
列出本地和远程分支:
$ git branch -ra
输出:
feature/feature1
feature/feature2
hotfix/hotfix1
* master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
您可以使用git签出,即。“签出当前分支”。如果存在当前分支的跟踪信息,这是一个没有副作用的操作。
$ git checkout
Your branch is up-to-date with 'origin/master'.
我不知道这是否算作解析git配置的输出,但这将确定master正在跟踪的远程服务器的URL:
$ git config remote.$(git config branch.master.remote).url
另一个方法(感谢osse),如果你只是想知道它是否存在:
if git rev-parse @{u} > /dev/null 2>&1
then
printf "has an upstream\n"
else
printf "has no upstream\n"
fi