bash - 如何使用一个 .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
任何帮助表示赞赏,谢谢!
解决方案
如果你想结合添加、提交和推送,你需要一个 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"
推荐阅读
- tags - 如何在标签上使用环境变量
- azure - 如何将 C# 字符串表达式转换为逻辑应用表达式以替换变量数据
- java - 屏幕旋转期间textview背景颜色丢失
- reactjs - react-admin 中嵌套端点的数据网格
- c# - 如何从函数管理到 sftp 的并发连接
- angularjs - 为什么异常后变量仍保持正确值时下拉列表无法在浏览器中显示值?
- sql - 态度是多对多。我的参与。PostgreSQL
- vue.js - 您可能需要适当的加载程序来处理此文件类型。...vuetify.min.css
- sublimetext3 - Sublime text 3 - 打开文件夹的快捷方式
- r - 跨列表应用 ifelse 语句