idea git 多次commit合并为一次提交

1,450 阅读2分钟

作者:Gates

测试版本为2024.1.1.2 community Edition image-20240920091907700.png 文档为简练语言描述。

1、多次 Commit 合并为一次提交

开发过程中并不是一次完成commit再push,可能会多次commit,这样就会产生多条log,看来了乱维护起来很困难,如何利用idea将多次提交的内容合并成一次提交?

步骤:

1、修改代码提交到本地(只commit别push) ,备注为 "提交第一次,测试"

2、再次修改代码提交到本地(只commit别push) ,备注为 "提交第二次,测试"

3、合并commit。选择第一次提交代码,做为基础版本。选择"Interactively Rebase from Here..." image-20240920092936212.png 选择"Interactively Rebase from Here..."后显示如图 image-20240920093058892.png 点击第一次提交的代码,再点击“Reword”,输入备注。

image-20240920093200794.png

点击start rebasing按钮,rebasing...中。

image-20240920093322706.png

到此commit多次提交就合并完成,之后就可以push了。

扩展,在合并之前都是pick状态,通常只需Fixup就可以了。那么fixup和squash有什么区别?

image-20240920094616603.png

fixup和squash区别如下:总结,fixup合并使用前一条的备注,squash两条备注合并成一条新的。合并后备注都是可以修改的,区别不是很大,使用fixup就可以了。

  • fixup:该命令用于将当前提交与前一提交合并。它将当前提交的更改应用到前一提交上,但不会创建新的提交记录。提交信息中的前缀”fixup!”会将这个操作与前一提交关联起来。

image-20240920095056987.png

  • squash:该命令用于将当前提交与前一提交合并,并创建一个新的提交记录。它将当前提交的更改与前一提交合并,并生成一个新的提交记录。提交信息中的前缀”squash!”会将这个操作与前一提交关联起来。

image-20240920095137200.png

题外话,很多人说切换分支需求提交到本地,以上是可以,但还有另一个方法就是stash 和 shelve暂时功能。