场景
我们在本地开发某一个模块的时候,可能会有多次commit的场景。
比如在A分支上开发东西,这个时候产品要在已上线版本加紧急需求,上线这个时候可能就得切到别的分支开发了。但是A分支开发的东西可能就需要先提交到本地。
完成紧急任务之后,又要切到A分支继续开发,开发完成后,就会出现多次commit了,但是这多次的commit其实是一个功能模块,如果一块Push到远端,提交记录可能会看的比较零碎。
方法一,使用sourTree工具进行操作:
1、
image.png
2、
image.png
3、
image.png
方法二,命令行 git rebase:
1、git log 查看所有的git 记录
commit 7a118515b655f36ecb3b0d18feff9ca1ddf67b23 (HEAD -> develop1)
Author: yan
Date: Tue Mar 31 18:19:43 2020 +0800
add 7
commit a704085efa4488e33b704670851d6fa4ddc84b3a
Author: yan
Date: Tue Mar 31 18:19:26 2020 +0800
add 6
commit 3ac0a1f2f88467e7e76aba21ebd7d7d26502a75e
Author: yan
Date: Tue Mar 31 18:18:10 2020 +0800
add 5
commit d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9 (origin/master, origin/develop1, master)
Author: yan
Date: Tue Mar 31 17:30:27 2020 +0800
添加3 和 4
我们现在项合并的是 add 7 + add 6 + add 5
2、git rebase -i commitId
这里的commitId指的是想要合并的最后一条的下一条记录也就是
d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9<添加3 和 4>
按下q退出git log 查询
前提条件,本地没有可以提交的东西。不然会报错
git rebase -i d5d40c7d0d983c4e5ca50e8222f31114bcaa1fe9
image.png
3、修改关键字
进入vi模式后,在键盘上敲i键进入insert模式。这时候先看看这里面的东西是什么含义,
- pick 的意思是要会执行这个 commit
- squash 的意思是这个 commit 会被合并到前一个commit
我们这边需要将【add 7】和【add 6】合并到【add 5】中,那就需要修改成如下的:
image.png
修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:
可以在这个地方修改commit的message,不修改,默认是这几次的commit message的集合。
image.png
4、验证
git log
image.png
image.png
网友评论