2

为了编写特定的脚本,我需要检查当前分支是否有一个跟踪的遥控器以及这个遥控器的名称是什么。有没有办法只获取当前分支的名称,而不必解析git remote show origin输出?

4

2 回答 2

3

这应该有效:

git rev-parse --symbolic-full-name @{u}
于 2011-11-10T12:41:13.547 回答
1

由于 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
于 2011-11-10T13:13:47.200 回答