【问题标题】:Git : How to get name of the branch tracked by the current one?Git:如何获取当前跟踪的分支的名称?
【发布时间】:2011-12-25 23:36:20
【问题描述】:

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

【问题讨论】:

标签: git branch remote-branch


【解决方案1】:

这应该可行:

git rev-parse --symbolic-full-name @{u}

【讨论】:

    【解决方案2】:

    由于 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
    

    【讨论】:

    • 是的,他的回答更简洁。
    猜你喜欢
    • 2023-03-09
    • 2011-09-08
    • 2013-09-10
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2019-12-13
    相关资源
    最近更新 更多