作者:Gates
测试版本为2024.1.1.2 community Edition
文档为简练语言描述。
1、多次 Commit 合并为一次提交
开发过程中并不是一次完成commit再push,可能会多次commit,这样就会产生多条log,看来了乱维护起来很困难,如何利用idea将多次提交的内容合并成一次提交?
步骤:
1、修改代码提交到本地(只commit别push) ,备注为 "提交第一次,测试"
2、再次修改代码提交到本地(只commit别push) ,备注为 "提交第二次,测试"
3、合并commit。选择第一次提交代码,做为基础版本。选择"Interactively Rebase from Here..."
选择"Interactively Rebase from Here..."后显示如图
点击第一次提交的代码,再点击“Reword”,输入备注。
点击start rebasing按钮,rebasing...中。
到此commit多次提交就合并完成,之后就可以push了。
扩展,在合并之前都是pick状态,通常只需Fixup就可以了。那么fixup和squash有什么区别?
fixup和squash区别如下:总结,fixup合并使用前一条的备注,squash两条备注合并成一条新的。合并后备注都是可以修改的,区别不是很大,使用fixup就可以了。
- fixup:该命令用于将当前提交与前一提交合并。它将当前提交的更改应用到前一提交上,但不会创建新的提交记录。提交信息中的前缀”fixup!”会将这个操作与前一提交关联起来。
- squash:该命令用于将当前提交与前一提交合并,并创建一个新的提交记录。它将当前提交的更改与前一提交合并,并生成一个新的提交记录。提交信息中的前缀”squash!”会将这个操作与前一提交关联起来。
题外话,很多人说切换分支需求提交到本地,以上是可以,但还有另一个方法就是stash 和 shelve暂时功能。