4

git合并提交&修改历史提交信息

 2 years ago
source link: https://cfonheart.github.io/2019/03/20/git%E5%90%88%E5%B9%B6%E6%8F%90%E4%BA%A4-%E4%BF%AE%E6%94%B9%E5%8E%86%E5%8F%B2%E6%8F%90%E4%BA%A4%E4%BF%A1%E6%81%AF/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、合并提交

当你在本地已经有了好几次提交,但提交MR的时候发现这几次提交需要合为一次提交,想合并的时候该怎么做呢?

这时候需要使用git rebase -i进入交互模式来完成,请看下面的例子:

在我的test项目里,我要把前两次提交(4d0f937b981,7ce5cf55db)合并成一次提交:

img

1.找到这两次提交的前一个提交,即e361e4a92926c0

2 执行 git rebase -i e361e4a92926c0

3.此时会进入默认的git编辑器:此时的提交顺序是跟git log看到的顺序相反,即从提交顺序从上到下,最上面的是最老的提交,最下面的是最新的提交。

img

4.合并两次提交,即把最新的一次合并到上一次提交:将最新的提交(4d0f937b981)前的pick改成s,(s命令的详解请看第二白框标识处,然后保存退出)

img

5.此时会再次弹出编辑器,显示这两次的提交信息,修改里面的提交信息为最终合并成一次的提交信息(也就是把不要的那次提交的信息前面用#注释了即可),然后保存并退出。

imgimg

6.此时git log查看两次提交已经合并为了一次提交:

img

  1. 如果你的远端也已经提交过这两次commit,本地修改好之后git push –force origin master , 远端也就一起合并了

二、修改历史提交信息

有时候某些已经提交的提交信息书写不是符合规范,需要进行修改才能进行Merge Request。

修改历史提交信息分两种情况:

1)修改最新一次提交信息

  • git commit –amend
  • 在弹出的编辑器中修改提交信息并保存退出

2)修改提交历史中其他提交信息

请看如下例子:

在我的test项目里,我要把这两次提交(4d0f937b981,7ce5cf55db)的提交信息。

  • img
  • 1.找到这两次提交的前一个提交,即e361e4a92926c0

    2 执行 git rebase -i e361e4a92926c0

    3.此时会进入默认的git编辑器:此时的提交顺序是跟git log看到的顺序相反,即从提交顺序从上到下,最上面的是最老的提交,最下面的是最新的提交。

    img

    4.将要修改的提交前的pick 改成r,然后保存并退出

​ 5.此时会自动进入git默认的编辑器,修改提交信息,保存并退出,完成提交信息修改。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK