嘿伙计们我正在尝试写一个快速别名来结帐并使用这种语法跟踪远程分支
git get {branch_name}
执行此操作的正确方法是
git checkout --track origin/{branch_name}
我试过
[alias]
get = "!sh -c 'git checkout --track origin/$1'"
但是得到致命:缺少分支名称
我错过了什么?
答案 0 :(得分:3)
你的代码看起来像是一个shell别名(我看到$ 1替换和sh命令)。我建议将其添加为.gitconfig文件中的别名。在该文件中" git"命令被理解。
[alias]
get = 'checkout --track origin/'
(你可能需要一个双斜线,逃避和全部,而不是100%)
所以打电话:
$ git get someName
基本上会打电话:
git checkout --track origin/someName
答案 1 :(得分:1)
我认为它已经在尝试替换1美元。另一件可能导致git别名配置中的sh命令出现问题的事情。我会使用shell别名。
答案 2 :(得分:1)
将以下别名添加到您的.gitconfig文件中
cto = "!f() { \
git checkout --track origin/\"$1\"; \
}; f"
我使用cto(签出轨道的原点)作为别名,并使用Shell命令进行替换以传入分支名称。
然后您可以像这样使用别名
git cto my-cool-branch
等同于
git checkout --track origin/my-cool-branch