在已合并分支执行Git Rebase引发冲突,如何避免?
如何避免Rebase到Master分支时的冲突
频繁小步Rebase,代替批量合并
别等代码攒一大段再合并master,每天抽几分钟把master的最新代码rebase到自己的分支上。每次冲突范围小,更容易解决,也能让流水线的rebase减少冲突概率。日常执行命令:git checkout master git pull git checkout your-branch git rebase master提前在本地解决冲突,流水线再跑时就不会碰到新冲突。
拆分大提交为小粒度提交
如果分支上有几个大提交,每个提交改了一堆文件,rebase时冲突概率会飙升。把大提交拆成多个专注单一功能的小提交,冲突范围更聚焦,解决起来更快,也能降低流水线rebase的冲突几率。可以用git rebase -i HEAD~n来拆分提交。标记冲突高发区域,提前协调
如果每次冲突都集中在某几个文件(比如配置文件、公共工具类),和团队其他开发者同步,约定好修改这些文件的时机或方式,比如谁修改前先打个招呼,避免多人同时改动同一部分代码。用git rerere复用冲突解决方案
Git的rerere(reuse recorded resolution)功能能记录你之前解决过的冲突,下次遇到相同冲突时自动帮你解决。开启命令:git config --global rerere.enabled true本地解决过一次冲突后,流水线的rebase碰到相同冲突时会自动套用之前的解决方案,不用手动再处理。
调整分支开发策略,避免跨模块修改
尽量让分支只专注一个模块或功能的修改,别同时改动多个不相关模块。这样和master上其他开发者的代码改动重叠概率降低,rebase时冲突自然就少了。
内容的提问来源于stack exchange,提问作者Hacker
相关产品推荐
相关产品推荐

