如何利用Git进行多人协作开发

1,057 阅读3分钟

前言

本文主要是对使用git进行多人协作开发的常用规范和一些操作的简单总结

通用流程

image.png

分支管理

一般获取代码,创建分支遇到的问题不多。一般按照如下方式创建分支即可

  • master:与线上版本保持绝对一致;
  • develop:开发分支,由下文提到的release、feature、hotfix分支合并过后的代码;
  • feature:实际功能点开发分支,建议每个功能新建一个feature, 具有关联关系的功能公用一个feature分支;
  • release:每一次开发完成之后,从develop创建出来的分支,以此分支为基准,进行测试;
  • hotfix:该分支主要用于修复线上bug;

commit管理

  1. 在提交代码时,注释可按统一规范提交。比如可以使用和vue3一样的commit注释管理方式 详细见 看vue3源码可以学到什么 : 二、Git Log规范
    <type>(<scope>): <subject>
        <BLANK LINE>
        <body>
        <BLANK LINE>
    <footer>

其中type包括

  • fix:问题修复
  • docs:文档变更
  • style:代码风格变更(不影响功能)
  • refactor:既不是新功能也不是问题修复的代码变更
  • perf:改善性能
  • test:增加测试
  • chore:开发工具(构建,脚手架工具等)
  • footer 可以包含 Breaking Changes 和 Closes 信息。
  1. 提交的过程中如果次数过频可以合并commit,便于生成的changelog更易理解。

代码合并

git用于代码合并的命令主要有两个:git mergegit rebase

  1. git merge的主要特性
  • 只处理一次冲突
  • 引入了一次合并的历史记录,合并后的所有 commit 会按照提交时间从旧到新排列
  • 所有的过程信息更多,可能会提高之后查找问题的难度 【图片来源网络】 image.png
  1. git rebase的主要特性
  • 改变当前分支从 master 上拉出分支的位置
  • 没有多余的合并历史的记录,且合并后的 commit 顺序不一定按照 commit 的提交时间排列
  • 可能会多次解决同一个地方的冲突(有 squash 来解决)
  • 更清爽一些,master 分支上每个 commit 点都是相对独立完整的功能单元 【图片来源网络】 image.png
  1. 使用场景
  • 再本地分支开发时比如当前分支为feature1,个人开发分支需要同步当前develop最新代码时使用git rebase
  • 不要在公共分支比如master使用git rebase,主干合并代码时使用git merge

Pull Requset

如果开发的时候,直接使用github做代码仓库的话,pull request是一个极其常用的操作。其字面意思为请求代码合并,主要步骤

  1. 把开源项目代码,克隆到个人仓库,Github 的术语叫做 fork
  2. 在个人仓库修改后的分支上,按下"New pull request"按钮
  3. 填写注释,然后按下"create pull request"按钮即可 PR 创建后,项目管理者在code review需要决定是否接受该 PR,code review无问题即可介绍提交合并代码到对应分支。

总结

在多人协作开发和参与开源项目的过程中,git是必须熟练掌握的版本控制工具,再日常使用过程中有些好的最佳实践和规范可以沉淀下来,加深理解,提升开发效率。