规范的代码提交记录应该是一次commit就代表一个完整的特性或者用户故事,在一个功能或者一个相对完整的代码块完成之前,尽量做到不要随意提交代码,不然会把commit history搞得乱糟糟的,而且会大量增加rebease解决冲突的次数。当事后做分支合并的时候,解决冲突都解决不过来,每次解决冲突都可能引入新的问题。解决冲突的过程本质上是一个开发行为,在你自测之后遇到的冲突你去解决,会导致你所有的自测都失去可信度,今天的自己给明天的自己挖坑!
1. 要从根源上控制没有完成开发就提交commit的行为,有很多办法,比如stash,或者临时分支暂存;
2. 事后找补:如果在本地分支上已经提交了若干次碎片化的提交,可以在rebease或者merge的时候加上--squash参数来压缩若干次相同主题的commit为一次commit,这样更安全一些,也会使你的commit history更加美观,想想事后遇到回退代码或者历史版本检出或者历史版本合并这些场景下,你对一个干净的commit history有多么依赖
参考: