这引起了我的兴趣,当我今天早上试图通过使用
设置一个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
我想我正在寻找一种方法来接受字符串而不是单字参数,也许?
尝试使用$1
代替$0
git config --global alias.ac '!sh -c "git add . && git commit -m "$1""'
$0
将在提交消息中重复整个命令。也就是说,它不是位置参数之一。
您可以尝试为消息添加双引号:"$1"
对于这种别名还有其他选项:参见"Git别名-多个命令和参数"。
例如
git config --global alias.ac '!f(){ git add . && git commit -m "$1"; };f'