参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
参见: 如何查看哪个Git分支正在跟踪哪个远程/上游分支?
如何知道本地分支正在跟踪哪个远程分支?
我是否需要解析git配置输出,或者是否有一个命令可以为我做这件事?
当前回答
本地分支机构及其遥控器。
git branch -vv
所有分支和跟踪遥控器。
git branch -a -vv
查看本地分支在哪里显式地配置了推和拉。
git remote show {remote_name}
其他回答
下面的命令将远程原点电流叉指的是
Git remote -v
添加远程路径时,
Git远程添加原始路径_name
这将显示你所在的分支:
$ 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
如果你正在使用Gradle,
def gitHash = new ByteArrayOutputStream()
project.exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = gitHash
}
def gitBranch = new ByteArrayOutputStream()
project.exec {
def gitCmd = "git symbolic-ref --short -q HEAD || git branch -rq --contains "+getGitHash()+" | sed -e '2,\$d' -e 's/\\(.*\\)\\/\\(.*\\)\$/\\2/' || echo 'master'"
commandLine "bash", "-c", "${gitCmd}"
standardOutput = gitBranch
}
还有另一种方法
git status -b --porcelain
这会给你
## BRANCH(...REMOTE)
modified and untracked files
另一个方法(感谢osse),如果你只是想知道它是否存在:
if git rev-parse @{u} > /dev/null 2>&1
then
printf "has an upstream\n"
else
printf "has no upstream\n"
fi