用于获取和检出远程分支的Git别名?

5
我正在尝试编写一个快速别名来使用以下语法检出和跟踪远程分支。
git get {branch_name}

正确的方法是这样的。
git checkout --track origin/{branch_name}

我尝试了。
[alias]
   get = "!sh -c 'git checkout --track origin/$1'"

但是出现了一个“fatal: missing branch name”错误,我错过了什么?
3个回答

5
将以下别名添加到您的 .gitconfig 文件中。
cto = "!f() { \
    git checkout --track origin/\"$1\"; \
}; f"

我使用cto(checkout track origin)作为别名和shell命令,通过替换传递分支名称。

然后您可以像这样使用别名

git cto my-cool-branch

这将相当于

git checkout --track origin/my-cool-branch

2
谢谢你,这很有效。看起来你的分支比我的更酷! - simesy

3

你的代码看起来像是一个shell别名(我看到了$1替换和sh命令)。我建议将其添加为您的.gitconfig文件中的别名。在该文件中,“git”命令是可以理解的。

[alias]
    get = 'checkout --track origin/'

您可能需要双斜杠(转义等),但我不能百分之百确定。

因此,调用:

$ git get someName

本质上会调用:

git checkout --track origin/someName

1
我认为它已经在尝试替换 $1。另一件可能引起麻烦的事情是 git 别名配置中的 sh 命令。我建议使用 shell 别名代替。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接