Git checkout没有args

时间:2018-03-31 00:14:51

标签: bash git

在git docs中它说

  

git checkout<分支>

     

你可以省略<分支>,在这种情况下   命令退化为"检查当前分支",这是一个   赞美无操作与相当昂贵的副作用,只显示   跟踪当前分支的信息(如果存在)。

我想更改此默认行为,以便在没有参数的情况下检出master而不是当前分支。

替代解决方案,如果不可能

我目前在bash个人资料中有以下内容:

alias gco='git checkout'
__git_complete gco _git_checkout

如何将此更改为一个函数,以便在没有参数的情况下检出master,否则使用上述行为......

gco()
{
if [ $# -eq 0 ]
    git checkout master
else
    # autocomplete as above and alias to just git checkout?
fi
}

1 个答案:

答案 0 :(得分:2)

function gco(){
    if [ -z "$1" ]; then
        git checkout master
    else
        git checkout "$1"
    fi
}

结帐Bash Comparison OperatorsFunctions

正如评论中所述,高级替代方案涉及Bash Parameter SubstitutionInternal Variables

gco() { git checkout "${@-master}"; 

无论您选择哪种方式,请务必了解它,以便您可以向他人解释并根据需要进行更改。