【Git】GitFlow 合并分支原则

目录

1. 问题

2. 原则

3. 工具

3.1 Android Studio 工具合并

3.2 推荐配置

4. 参考


1. 问题

最近人多了,拆分业务线,技术和业务相分离;每个人在各自业务线分支上,最后功能做完合并到开发分支;

有时候功能分支上线,有时候不上线,导致好多分支,合并的时候好多冲突,再加上有些小伙伴每次提交都文件格式化,我嚓,一个文件1000多行的冲突,十来个文件的冲突,1w 多行以上合并的时候实在太痛苦了;

有时候合并分支,没必要全局格式化的,而且在合并时机上,也有要求;没必要浪费巨大的精力和时间来解决合并分支导致的问题; 可以在业务和技术管控上优化优先级,来减少不必要的冲突所带来的成本提升;

2. 原则

一般意义上GitFlow 如下:

参考模型一

功能分支开发分支:

Git 合并分支

Git Hotfixes:

建议

  1. 业务需求,技术需求,运营需求,一定要区分优先级;
  2. 使用中间件隔离业务和技术,多modlues,多repo,Re-Nw(可读,可执行,不可写)化;
  3. 合并业务/技术,一定要局部到整体,拒绝一股脑执行和实施;
  4. Scrum Master 相关人员一定要需求识别先行,依赖识别先行,然后在排期需求池;

细则

  1. 禁止全局格式化,兼容老版本代码库;
  2. 新版本代码库格式化统一性要求,系统环境统一性要求;
  3. 强沟通,弱写码;强平台,弱技术(不建议);
  4. 强执行,弱洁癖;强业务,弱不定(屏蔽不定性需求);
  5. 业务优于规则,规则优于制度(不建议);
  6. 业务是公司的,技术是自己的(不建议);

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           // 检查高亮 - 默认 - 推荐

4. 参考

  1. Git 工作流程;
  2. Understanding the GitHub flow;
  3. GitHub 流程;
  4. A successful Git branching model;
发布了66 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/DovSnier/article/details/103763516