这是我目前在.gitconfig中的别名,它们工作得很好。但是,我希望有一个别名可以同时使用所有这三个别名。
我想要在终端上显示的示例:
git x my_commit_message
.gitconfig的伪代码:
[alias]
x = add -A <then do> commit -m <use variable from command line> push
我将push设置为default = current,所以单独使用push即可。
[push]
default = current
感谢您的帮助,谢谢!
答案 0 :(得分:2)
如果要组合添加,提交和推送,则需要一个bash函数。 Git的添加和提交可以与git -am "msg"
结合使用,但是推送只能作为附加命令来完成。因此,只需定义如下的bash函数即可:
gacp() {
git add -A &&
git commit -m "${1?'Missing commit message'}" &&
git push
}
这首先通过执行git add -A
,然后成功完成 ,然后执行命令git commit -m
,并显示必需的消息,然后执行 if 成功,然后执行git push
。
重要的是,使后一个命令依赖于前一个命令的成功执行,以避免下游混乱。换句话说,除非commit
成功,否则您真的不希望add
进行更改,除非commit
成功,您才真正不希望推送最新的提交。>
您可以这样使用它:
gacp "Latest changes"
答案 1 :(得分:1)
您需要使用shell函数才能在git别名中执行多个命令。
!
开始,以便Git将其作为shell命令运行。f() { git add -A && git commit -m "$1" && git push }
。您应该编写类似的内容:
[alias]
x = "!f() { git add -A && git commit -m \"$1\" && git push } f"
请注意:
$1
将由命令行中的变量替换,&&
仅在上一个命令成功执行后才会执行下一个命令。