我正在尝试编写一个快速别名来使用此语法签出和跟踪远程分支
git get {branch_name}
Run Code Online (Sandbox Code Playgroud)
正确的方法是
git checkout --track origin/{branch_name}
Run Code Online (Sandbox Code Playgroud)
我试过
[alias]
get = "!sh -c 'git checkout --track origin/$1'"
Run Code Online (Sandbox Code Playgroud)
但得到一个致命的:缺少分支名称
我缺少什么?
将以下别名添加到您的 .gitconfig 文件中
cto = "!f() { \
git checkout --track origin/\"$1\"; \
}; f"
Run Code Online (Sandbox Code Playgroud)
我使用 cto(checkout track origin)作为别名,并使用 shell 命令进行替换以传入分支名称。
然后您可以像这样使用别名
git cto my-cool-branch
Run Code Online (Sandbox Code Playgroud)
这将相当于
git checkout --track origin/my-cool-branch
Run Code Online (Sandbox Code Playgroud)
您的代码看起来像是一个 shell 别名(我看到 $1 替换和 sh 命令)。我建议将其添加为 .gitconfig 文件中的别名。在该文件中,“git”命令是可以理解的。
[alias]
get = 'checkout --track origin/'
Run Code Online (Sandbox Code Playgroud)
(你可能需要双斜杠、转义等等,而不是 100%)
所以调用:
$ git get someName
Run Code Online (Sandbox Code Playgroud)
本质上会调用:
git checkout --track origin/someName
Run Code Online (Sandbox Code Playgroud)