今天早上,当我尝试使用
设置git别名时,这引起了我的兴趣git config --global alias.ac '!sh -c "git add . && git commit -m $0"'
但由于错误
,它在git ac "Finish static pages"
之后失效
fatal: Option -m cannot be combined with -c/-C/-F/--fixup.
在寻找周围之后,它仍让我头疼。为什么我不能将-m选项与sh -c
结合使用,我应该如何正确地使其工作?非常感谢!
修改的 如果我使用
git config --global alias.ac '!sh -c "git add . && git commit -m $1"'
最后代替$0
,它会说
sh: git add -A ; git commit --message Finish static pages: No such file or directory
fatal: While expanding alias 'ac': 'sh -i "git add -A ; git commit --message $1"': No such file or directory
我想我正在寻找一种接受字符串而不是单字参数的方法,可能吗?
答案 0 :(得分:1)
尝试使用$1
代替$0
git config --global alias.ac '!sh -c "git add . && git commit -m \"$1\""'
$0
将在您的提交消息中重复整个命令。含义,it isn't one of the positional parameters。
您可以尝试为邮件添加双引号:\"$1\"
此类别名存在其他选项:请参阅“Git Alias - Multiple Commands and Parameters” 例如
git config --global alias.ac '!f(){ git add . && git commit -m "$1"; };f'