【发布时间】:2011-12-25 23:36:20
【问题描述】:
为了编写一个特定的脚本,我需要检查当前分支是否有一个被跟踪的遥控器以及这个遥控器的名称是什么。有没有办法只获取当前分支的名称,而不必解析git remote show origin 输出?
【问题讨论】:
标签: git branch remote-branch
为了编写一个特定的脚本,我需要检查当前分支是否有一个被跟踪的遥控器以及这个遥控器的名称是什么。有没有办法只获取当前分支的名称,而不必解析git remote show origin 输出?
【问题讨论】:
标签: git branch remote-branch
这应该可行:
git rev-parse --symbolic-full-name @{u}
【讨论】:
由于 Git 1.7+ 中包含 28fb8438(引入 @{upstream} 表示法,2009-09-10),您可以使用 HEAD@{upstream}(或简称为 HEAD@{u})来实现此目的。
出于教育目的,这是一个等效的 shell 脚本。
#!/bin/sh
cbranch=`git rev-parse --abbrev-ref HEAD`
cmerge=`git config branch.$cbranch.merge`
cremote=`git config branch.$cbranch.remote`
if [ $? -eq 0 ]; then
echo "$cremote/`git rev-parse --abbrev-ref $cmerge`"
else
return 1
fi
【讨论】: