3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
如果您查看手冊頁git-rev-parse,您將看到描述以下語法:
<branchname>@{upstream},例如master@{upstream},@{u}
@{upstream}branchname(簡短形式 <branchname>@{u})的后綴是指由branchname指定的分支設(shè)置為在其上構(gòu)建的分支。缺少的branchname默認(rèn)為當(dāng)前的。
因此,要找到分支的上游master,您可以:
git rev-parse --abbrev-ref master@{upstream}
# => origin/master
要打印出每個分支的信息,您可以執(zhí)行以下操作:
while read branch; do
upstream=$(git rev-parse --abbrev-ref $branch@{upstream} 2>/dev/null)
if [[ $? == 0 ]]; then
echo $branch tracks $upstream
else
echo $branch has no upstream configured
fi
done < <(git for-each-ref --format='%(refname:short)' refs/heads/*)
# Output:
# master tracks origin/master
# ...
這比手動解析refs和config更干凈。
- 3 回答
- 0 關(guān)注
- 3680 瀏覽
添加回答
舉報(bào)