每次工作养成了保存 commit 的习惯,提交远程仓库时想合并这些 commit 保证历史信息干净整洁。
通过 rebase 合并本地未提交的 commit 并修改消息。
git rebase -i [hash]
如上图所示,我要将这两个3分钟前的 commit 合并在一起,那么就要执行 git rebase -i [第commit的hash值]
(第三个hash才可以看到前面两个commit)。
如上图所示,进入到了编辑界面(vim 编辑器),合并需要用到以下两个指令,下面是它们的解释:
- squash:当你在交互式 rebase 的状态下选择 "squash",Git 会将当前提交与上一个提交合并,并且提供一个新的提交信息编辑页面,可以对两个合并的提交的提交信息进行编辑。这样你可以在这个编辑页面修改合并后的提交信息。
- fixup:相反,当你选择 "fixup",Git 也会将当前提交与上一个提交合并,但是它会丢弃当前提交的信息,只保留上一个提交的信息,不会提供编辑页面供你修改。这是一个 "安静的" 操作,通常用于修复小问题或误操作。
我需要修改消息,所以我选择 squash。
把下面的合并到上面去,也就是最新的代码合并到旧 commit 中,第一个 commit 保留。接着进入消息修改界面,修改完成之后(ctrl+c 退出编辑模式,:wq
退出保存),然后 git push
推送 origin。
git rebase --abort
修改完成之后,不想保留 rebase 操作就执行这个指令。
标签:Git,rebase,合并,git,提交,commit From: https://www.cnblogs.com/Himmelbleu/p/17969769