Git 团队协作全流程规范:从开发到合并的最佳实践

350 阅读9分钟

Git 团队协作全流程规范:从开发到合并的最佳实践

在团队开发中,规范的 Git 操作流程是保证代码质量、减少冲突、提高协作效率的关键。本文基于主流的 GitHub Flow 开发流程,结合实际项目经验,整理出一套完整的 Git 协作操作规范,适用于中小型团队的日常开发协作。

一、准备工作:确保仓库同步

在开始任何开发工作前,首先需要确保本地仓库与远程仓库保持同步,避免基于旧版本代码进行开发。具体操作如下:

git fetch origin  # 获取远程所有分支的最新状态
git checkout main && git pull origin main  # 切换到main分支并拉取最新代码

这一步的目的是确保本地 main 分支与远程仓库的 main 分支完全一致,为后续的分支创建和开发工作奠定基础。

二、创建或切换开发分支

团队开发中通常会为不同功能或任务创建专门的开发分支,这里以dev_lq分支为例说明操作流程。

分支不存在时

如果dev_lq分支尚未创建,可直接从 main 分支创建并切换到该分支:

git checkout -b dev_lq  # 从main分支创建并切换到dev_lq分支

分支已存在时

如果dev_lq分支已经存在,需要先切换到该分支并与 main 分支同步,避免后续开发出现冲突:

git checkout dev_lq  # 切换到dev_lq分支
git merge main       # 确保与main分支同步

定期将 main 分支的最新代码合并到开发分支,可以有效减少后续合并时的冲突处理成本。

三、开发与本地提交规范

在开发过程中,完成阶段性工作后需要及时提交代码到本地仓库。提交时应遵循规范的提交信息格式,便于团队成员理解代码变更内容。

基本提交操作

git add .  # 添加所有修改的文件
git commit -m "feat(scope): 描述修改内容"  # 提交到本地仓库

(注意这步只是提交,不带推送)

提交信息应采用类型化的格式,常见的类型包括:

  • feat:新功能开发

  • fix:问题修复

  • docs:文档更新

  • style:代码格式调整(不影响代码运行的变动)

  • refactor:代码重构

  • test:添加测试

  • chore:构建过程或辅助工具的变动

规范的提交信息不仅便于代码审查,还能帮助团队生成清晰的版本变更记录。

四、推送前的分支同步与冲突处理

在将本地开发的代码推送到远程仓库前,必须再次与 main 分支同步,确保代码基于最新版本开发,最大程度减少冲突。

同步 main 分支代码

git pull origin main  # 拉取main分支的最新代码
git merge main        # 将main分支代码合并到当前开发分支

冲突解决流程

当合并过程中出现冲突时,需要按照以下步骤处理:

  1. 打开冲突文件,查找并手动编辑冲突部分(冲突内容会被<<<<<<< HEAD和>>>>>>> main标记)
  2. 编辑完成后标记为已解决:git add <冲突文件路径>
  3. 完成合并提交:git commit -m "merge: resolve conflicts with main branch"

冲突解决后,建议再次测试代码功能,确保冲突处理没有引入新的问题。

五、推送分支到远程仓库

完成本地开发和冲突处理后,就可以将开发分支推送到远程仓库,为后续的代码审查做准备。

git push origin dev_lq  # 推送dev_lq分支到远程仓库

首次推送分支时,需要添加-u参数设置上游分支,后续推送可直接使用git push命令:

git push -u origin dev_lq  # 首次推送并设置上游分支

六、创建 Pull Request (PR)

推送分支到远程后,需要在代码托管平台(如 GitHub、GitLab)上创建 Pull Request,请求将开发分支的代码合并到 main 分支。

创建 PR 的步骤

  1. 进入仓库页面,选择dev_lq分支
  2. 点击 "New Pull Request" 按钮
  3. 设置 base 分支为main,compare 分支为dev_lq
  4. 填写 PR 标题和详细描述,包括:修改的目的和背景、实现的主要功能或修复的问题、测试情况、可能影响的功能模块

创建 PR 后,需等待至少 1 名团队成员进行代码审核,审核通过后方可合并代码。

七、代码合并与后续清理

代码审核通过后,即可将开发分支的代码合并到 main 分支,并进行必要的分支清理工作。

代码合并方式

常用的合并方式有两种:

  • Squash Merge:将 PR 中的所有提交压缩为一个提交,保持 main 分支历史简洁

  • Merge Commit:保留所有提交历史,创建一个新的合并提交

团队可根据项目需求选择合适的合并方式,通常推荐使用 Squash Merge 保持主分支历史清晰。

分支清理

代码合并完成后,建议删除远程和本地的开发分支,避免分支过多导致管理混乱:

# 删除远程开发分支
git push origin --delete dev_lq

# 删除本地开发分支
git checkout main
git branch -d dev_lq

Git 团队协作全流程规范:从开发到合并的最佳实践

在团队开发中,规范的 Git 操作流程是保证代码质量、减少冲突、提高协作效率的关键。本文基于主流的 GitHub Flow 开发流程,结合实际项目经验,整理出一套完整的 Git 协作操作规范,适用于中小型团队的日常开发协作。

一、准备工作:确保仓库同步

在开始任何开发工作前,首先需要确保本地仓库与远程仓库保持同步,避免基于旧版本代码进行开发。具体操作如下:

git fetch origin  # 获取远程所有分支的最新状态
git checkout main && git pull origin main  # 切换到main分支并拉取最新代码

这一步的目的是确保本地 main 分支与远程仓库的 main 分支完全一致,为后续的分支创建和开发工作奠定基础。

二、创建或切换开发分支

团队开发中通常会为不同功能或任务创建专门的开发分支,这里以dev_lq分支为例说明操作流程。

分支不存在时

如果dev_lq分支尚未创建,可直接从 main 分支创建并切换到该分支:

git checkout -b dev_lq  # 从main分支创建并切换到dev_lq分支

分支已存在时

如果dev_lq分支已经存在,需要先切换到该分支并与 main 分支同步,避免后续开发出现冲突:

git checkout dev_lq  # 切换到dev_lq分支
git merge main       # 确保与main分支同步

定期将 main 分支的最新代码合并到开发分支,可以有效减少后续合并时的冲突处理成本。

三、开发与本地提交规范

在开发过程中,完成阶段性工作后需要及时提交代码到本地仓库。提交时应遵循规范的提交信息格式,便于团队成员理解代码变更内容。

基本提交操作

git add .  # 添加所有修改的文件
git commit -m "feat(scope): 描述修改内容"  # 提交到本地仓库

(注意这步只是提交,不带推送)

提交信息应采用类型化的格式,常见的类型包括:

  • feat:新功能开发

  • fix:问题修复

  • docs:文档更新

  • style:代码格式调整(不影响代码运行的变动)

  • refactor:代码重构

  • test:添加测试

  • chore:构建过程或辅助工具的变动

规范的提交信息不仅便于代码审查,还能帮助团队生成清晰的版本变更记录。

四、推送前的分支同步与冲突处理

在将本地开发的代码推送到远程仓库前,必须再次与 main 分支同步,确保代码基于最新版本开发,最大程度减少冲突。

同步 main 分支代码

git pull origin main  # 拉取main分支的最新代码
git merge main        # 将main分支代码合并到当前开发分支

冲突解决流程

当合并过程中出现冲突时,需要按照以下步骤处理:

  1. 打开冲突文件,查找并手动编辑冲突部分(冲突内容会被<<<<<<< HEAD和>>>>>>> main标记)
  2. 编辑完成后标记为已解决:git add <冲突文件路径>
  3. 完成合并提交:git commit -m "merge: resolve conflicts with main branch"

冲突解决后,建议再次测试代码功能,确保冲突处理没有引入新的问题。

五、推送分支到远程仓库

完成本地开发和冲突处理后,就可以将开发分支推送到远程仓库,为后续的代码审查做准备。

git push origin dev_lq  # 推送dev_lq分支到远程仓库

首次推送分支时,需要添加-u参数设置上游分支,后续推送可直接使用git push命令:

git push -u origin dev_lq  # 首次推送并设置上游分支

六、创建 Pull Request (PR)

推送分支到远程后,需要在代码托管平台(如 GitHub、GitLab)上创建 Pull Request,请求将开发分支的代码合并到 main 分支。

创建 PR 的步骤

  1. 进入仓库页面,选择dev_lq分支
  2. 点击 "New Pull Request" 按钮
  3. 设置 base 分支为main,compare 分支为dev_lq
  4. 填写 PR 标题和详细描述,包括:修改的目的和背景、实现的主要功能或修复的问题、测试情况、可能影响的功能模块

创建 PR 后,需等待至少 1 名团队成员进行代码审核,审核通过后方可合并代码。

七、代码合并与后续清理

代码审核通过后,即可将开发分支的代码合并到 main 分支,并进行必要的分支清理工作。

代码合并方式

常用的合并方式有两种:

  • Squash Merge:将 PR 中的所有提交压缩为一个提交,保持 main 分支历史简洁

  • Merge Commit:保留所有提交历史,创建一个新的合并提交

团队可根据项目需求选择合适的合并方式,通常推荐使用 Squash Merge 保持主分支历史清晰。

分支清理

代码合并完成后,建议删除远程和本地的开发分支,避免分支过多导致管理混乱:

# 删除远程开发分支
git push origin --delete dev_lq

# 删除本地开发分支
git checkout main
git branch -d dev_lq