Git参数别名不起作用

时间:2018-02-01 20:51:11

标签: git alias git-branch branching-and-merging

所以我试图为我在Git中所做的事情创建一个别名:根据我的开发分支创建一个新的分支但是不跟踪它。我在命令提示符下输入的代码是:

Git checkout –b branchname --no-track origin/develop

现在,我想将其转换为别名,所以我正在尝试这个:

git config --global alias.newBranch "!git checkout -b $1 --no-track origin/develop"

然而,当我输入" git newBranch test"时,我得到了回复:"致命:'测试'不是提交和分支测试'无法从中创建"

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

Git从字面上解释别名。即,当扩展别名git时 做简单的文字替换。在你的情况下,如果你运行git newBranch test git将其扩展为命令

!git checkout -b $1 --no-track origin/develop test

这当然不是你想要的。你需要一个shell函数来传递参数:

git config --global alias.newBranch "!f() { git checkout -b $1 --no-track origin/develop; }; f"