git - 用于压缩功能分支提交的 Git 别名
问题描述
在提交到 master 之前,我经常压缩功能分支上的所有提交。这是我目前所做的:
git checkout master
git merge --squash {branch}
git commit -m "{feature_summary}"
我可以使用 git 别名来执行此操作吗?我熟悉的别名(例如stashes = stash list
or uncommit = reset --soft HEAD~1
)不存储变量,在这种情况下,第二个命令需要在命令的开头知道我们来自哪个分支,所以我想必须存储这些信息。
理想情况下,我想要一个 git 别名,例如git squash
执行所有这些命令。我可以期待一个字符串作为提交消息,或者打开一个编辑器来输入消息。
解决方案
您可以使用@{-1}
表示“最后签出分支”的构造,并将参数传递给临时 bash 函数:
# ms for merge-squash but call it as you prefer
git config --global alias.ms '!f() { git checkout master && git merge --squash @{-1} && git commit -m "$1"; }; f'
那么一个示例使用可能来自您的功能分支:
git ms "My commit message"
推荐阅读
- python - 以 2^32 为模数相加两个二进制数
- javascript - 为什么我总是收到针对 DeleteItem EWS 操作的 ErrorInvalidRequest?
- node.js - Promise 对象在 React Native 项目中不起作用
- r - 如何将第 90 个百分位数按两列分组
- google-api - Google 同意屏幕上预先勾选的复选框
- flutter - 如何在颤动中创建嵌套的复选框图块?
- django - 在 django 中的文档 pdf 多页中生成一个 html 页面
- pip - 无法从 Dockerfile 构建 kubespray 容器
- r - 有没有办法专门使用 SIBER 包中的 maxLikOverlap 函数来计算 SEAc?
- racket - 如何获取特定结构的所有实例的列表