首页 > 解决方案 > 如何使用一个 .gitconfig 别名调用多个 git 命令

问题描述

这是我当前在 .gitconfig 中的别名,它们工作得很好。但是,我希望有一个可以同时完成这三个操作的别名。

我在终端想要的示例:

git x my_commit_message

.gitconfig 的伪代码:

[alias]
         x = add -A <then do> commit -m <use variable from command line> push

我已将推送设置为默认 = 当前,因此单独推送即可。

[push]
    default = current

任何帮助表示赞赏,谢谢!

标签: bashgit

解决方案


如果你想结合添加、提交和推送,你需要一个 bash 函数。git add 和 commit 可以和 结合使用git -am "msg",但是 push 只能作为附加命令来完成。因此,只需像这样定义一个 bash 函数:

gacp() {
  git add -A &&
  git commit -m "${1?'Missing commit message'}" &&
  git push
}

这通过执行第一个来工作git add -A如果成功,则git commit -m执行命令,并带有所需的消息,如果成功,则git push执行。

重要的是使后面的命令依赖于前面命令的成功执行,以避免下游混乱。换句话说,除非成功,否则您真的不想commit更改add,并且除非成功,否则您真的不想推送最近的提交commit

你像这样使用它:

gacp "Latest changes"

推荐阅读