我想要一个执行命令的别名,然后无论它是否失败,它都会执行其他命令,这取决于彼此的成功。
所以我在 .gitconfig 中有类似的东西
getpull = !sh -c 'git remote add $0 $1; git fetch $0 && git checkout -b $2 $0/$2'
使用该命令,我收到以下错误(我不知道,因为当我将其复制到 shell 时它工作正常):
sh -c 'git remote add $0 $1: 1: sh -c 'git remote add $0 $1: Syntax error: Unterminated quoted string
答案1
我发现了,这似乎与 .gitconfig 解析器有关,要解决它,我们只需要用双引号将整个命令括起来,如下所示
"!sh -c 'git remote add $0 $1; git fetch $0 && git checkout -b $2 $0/$2'"
答案2
分号;
开始一条注释,该注释会提前终止您的 Git 别名,从而在 Git 尝试运行您指定别名的外部 shell 命令时使其不完整。
该命令的手册页git-config
指出,;
分号开始一个注释,一直延伸到行尾,因为 Git 配置文件是以 INI 格式编写的。