一、合并提交
当你在本地已经有了好几次提交,但提交MR的时候发现这几次提交需要合为一次提交,想合并的时候该怎么做呢?
这时候需要使用git rebase -i进入交互模式来完成,请看下面的例子:
在我的test项目里,我要把前两次提交(4d0f937b981,7ce5cf55db)合并成一次提交:
1.找到这两次提交的前一个提交,即e361e4a92926c0
2 执行 git rebase -i e361e4a92926c0
3.此时会进入默认的git编辑器:此时的提交顺序是跟git log看到的顺序相反,即从提交顺序从上到下,最上面的是最老的提交,最下面的是最新的提交。
4.合并两次提交,即把最新的一次合并到上一次提交:将最新的提交(4d0f937b981)前的pick改成s,(s命令的详解请看第二白框标识处,然后保存退出)
5.此时会再次弹出编辑器,显示这两次的提交信息,修改里面的提交信息为最终合并成一次的提交信息(也就是把不要的那次提交的信息前面用#注释了即可),然后保存并退出。
6.此时git log查看两次提交已经合并为了一次提交:
- 如果你的远端也已经提交过这两次commit,本地修改好之后git push –force origin master , 远端也就一起合并了
二、修改历史提交信息
有时候某些已经提交的提交信息书写不是符合规范,需要进行修改才能进行Merge Request。
修改历史提交信息分两种情况:
1)修改最新一次提交信息
- git commit –amend
- 在弹出的编辑器中修改提交信息并保存退出
2)修改提交历史中其他提交信息
请看如下例子:
在我的test项目里,我要把这两次提交(4d0f937b981,7ce5cf55db)的提交信息。
1.找到这两次提交的前一个提交,即e361e4a92926c0
2 执行 git rebase -i e361e4a92926c0
3.此时会进入默认的git编辑器:此时的提交顺序是跟git log看到的顺序相反,即从提交顺序从上到下,最上面的是最老的提交,最下面的是最新的提交。
4.将要修改的提交前的pick 改成r,然后保存并退出
5.此时会自动进入git默认的编辑器,修改提交信息,保存并退出,完成提交信息修改。