目录
1. 问题
最近人多了,拆分业务线,技术和业务相分离;每个人在各自业务线分支上,最后功能做完合并到开发分支;
有时候功能分支上线,有时候不上线,导致好多分支,合并的时候好多冲突,再加上有些小伙伴每次提交都文件格式化,我嚓,一个文件1000多行的冲突,十来个文件的冲突,1w 多行以上合并的时候实在太痛苦了;
有时候合并分支,没必要全局格式化的,而且在合并时机上,也有要求;没必要浪费巨大的精力和时间来解决合并分支导致的问题; 可以在业务和技术管控上优化优先级,来减少不必要的冲突所带来的成本提升;
2. 原则
一般意义上GitFlow 如下:
参考模型一:
功能分支和开发分支:
Git 合并分支:
Git Hotfixes:
建议:
- 业务需求,技术需求,运营需求,质量需求,一定要区分优先级;
- 使用中间件隔离业务和技术,多modlues,多repo,Re-Nw(可读,可执行,不可写)化;
- 合并业务/技术,一定要局部到整体,拒绝一股脑执行和实施;
- Scrum Master 相关人员一定要需求识别先行,依赖识别先行,然后在排期需求池;
细则:
- 禁止全局格式化,兼容老版本代码库;
- 新版本代码库格式化统一性要求,系统环境统一性要求;
- 强沟通,弱写码;强平台,弱技术(不建议);
- 强执行,弱洁癖;强业务,弱不定(屏蔽不定性需求);
- 业务优于规则,规则优于制度(不建议);
- 业务是公司的,技术是自己的(不建议);
3. 工具
3.1 Android Studio 工具合并
下面简单拿Android Studio 工具合并或提交各个项来说明一些细则问题,为了辅助后续更好的执行合并或提交,降低额外人为风险;
人为命名如下:
各个Viewer 子选项(有些翻译地方不准,大致意思到位即可)如下所示:
1. view
- Side-by-side viewer // 并排查看
- Unified viewer // 整合查看
2. ignore view
- Do not ignore // 不忽略(空格、空行)
- Trim whitespaces // 忽略文本行前和行尾空格
- Ignore whitespaces // 忽略空格(行前,行中,行尾)
- Ignore whitespaces and empty lines // 忽略空格(行前,行中,行尾)和空行
3. Highlight view
- Highlight lines // 高亮行
- Highlight words // 高亮文本
- Highlight split changes // 高亮突出拆分
- Highlight symbols // 高亮符号(文本,换行,tab,空格...)
- Do not Highlight // 不高亮
4. Fragments view
- Collapse Unchanged Fragments on/off // 折叠或不折叠未更改的代码块
5. Synchronize Scrolling view
- Synchronize Scrolling on/off // 同步或异步滚动代码块
6. Settings view
- Show Whitespaces // 显示空格
- Show Line Numbers // 显示行数
- Show indent Guides // 显示缩进参考线
- Soft-Wrap // 折行显示
- Highlighting Level
- Inspections // 检查高亮
- Syntax // 语法高亮
- None // 不高亮
3.2 推荐配置
1. Side-by-side viewer // 并排查看 - 默认 - 推荐
2. Do not ignore // 不忽略(空格、空行) - 默认 - 推荐
2. Trim whitespaces // 忽略文本行前和行尾空格,适用于格式化代码差异
2. Ignore whitespaces and empty lines // 忽略空格(行前,行中,行尾)和空行,适用于格式化代码差异 - 不推荐
3. Highlight words // 高亮文本 - 默认 - 推荐
4. Collapse Unchanged Fragments on/off // 折叠或不折叠未更改的代码块 - 默认 - 推荐
5. Synchronize Scrolling on/off // 同步或异步滚动代码块 - 默认 - 推荐
6. Show Whitespaces // 显示空格
6. Show Line Numbers // 显示行数
6. Show indent Guides // 显示缩进参考线
6. Highlighting Level
6. - Inspections // 检查高亮 - 默认 - 推荐