从开发到合并:AICR 项目 Git 协作提交全流程指南

在团队协作开发中,规范的 Git 操作流程是保障代码一致性、减少冲突、提高协作效率的核心。本文以 AICR 应用开发为例,详细拆解从本地开发、代码提交到分支合并的完整流程,适配「个人开发分支 → 目标合并分支」的协作模式,适合需要规范化提交的团队或个人参考。

一、背景与核心协作逻辑

AICR 项目采用「多分支并行开发 + PR 合并」的协作模式,核心规则如下:

  1. 项目主开发分支为 feature/202511/V12-1101(目标合并分支);
  2. 每位开发者基于目标分支创建个人开发分支(命名规范:feature/V12-1101-姓名缩写,如 feature/V12-1101-LSP);
  3. 开发完成后通过「Pull Request(PR)」发起合并请求,经代码审核后合并至目标分支;
  4. 全程遵循 Git 提交规范,确保分支历史清晰、冲突提前规避。

二、完整操作流程(附命令与场景说明)

1. 初始化:创建个人开发分支

首先需基于目标分支创建本地开发分支,确保开发起点与远程最新代码一致。

复制代码
# 1. 拉取远程仓库所有分支信息(更新本地缓存)
git fetch origin

# 2. 基于远程目标分支创建并切换到个人开发分支
git checkout -b feature/V25-1107-LSP origin/feature/202511/V12-1101
  • 分支命名建议:feature/迭代版本-日期-开发者标识,便于区分不同功能与负责人;
  • 若本地已存在目标分支,先执行 git pull origin feature/202511/V12-1101 同步最新代码。

2. 开发阶段:本地代码提交

开发过程中需定期提交代码,确保工作成果可追溯,提交信息需清晰规范。

复制代码
# 1. 查看本地修改文件(确认提交范围)
git status

# 2. 将修改文件加入暂存区
git add .  # 提交所有修改(谨慎使用,可替换为具体文件名)

# 3. 提交到本地仓库(提交信息需明确功能/修改内容)
git commit -m "V25-1107-LSP:开发 AICR 应用首页组件+数据请求逻辑"
  • 提交信息规范:分支标识:功能模块 + 具体操作,避免模糊表述(如「修复 bug」「更新代码」);
  • 若需修改最近一次提交(未推送远程),可使用 git commit --amend 补充信息。

3. 同步远程:拉取目标分支最新代码(避免冲突)

开发过程中,目标分支可能有其他开发者提交代码,需定期同步以提前解决冲突。

复制代码
# 1. 拉取远程目标分支的最新更新
git fetch origin feature/202511/V12-1101

# 2. 用 rebase 方式合并远程代码(保持分支历史线性整洁)
git rebase origin/feature/202511/V12-1101

冲突处理:若出现 CONFLICT 提示,打开冲突文件,按 <<<<<<< ======= >>>>>>>, 标记修改冲突内容,解决后执行:

复制代码
git add .  # 标记冲突已解决
git rebase --continue  # 继续完成变基
  • 若需放弃变基,执行 git rebase --abort 回退到变基前状态。

4. 推送远程:将个人分支推送到远程仓库

本地开发与冲突处理完成后,将个人分支推送到远程仓库,为 PR 做准备

复制代码
# 首次推送:建立本地分支与远程分支的关联(后续可直接用 git push)
git push -u origin feature/V25-1107-LSP

# 若之前执行过 rebase 导致分支历史不一致,需强制推送(安全模式)
git push --force-with-lease origin feature/V25-1107-LSP
  • 关键说明:--force-with-lease--force 更安全,会检查远程分支是否有他人提交,避免误覆盖他人代码;
  • 推送成功后,可通过仓库平台(GitLab/GitHub)查看远程分支是否存在。

5. 发起 PR:申请合并到目标分支

推送完成后,通过仓库平台发起 PR,正式申请将个人分支合并到目标分支。

以 GitLab 为例(GitHub 流程类似):
  1. 打开远程仓库地址(如 http://git.sf-express.com/scm/fop-dmp/fop-dmp-dsp-ai-analysis-platform.git);

  2. 点击「合并请求」→「新建合并请求」;

  3. 配置分支:

    • 源分支:选择个人开发分支 feature/V25-1107-LSP
    • 目标分支:选择 feature/202511/V12-1101
  4. 填写 PR 信息:

    • 标题:V25-1107-HWH:AICR 应用首页组件+数据请求逻辑开发(与提交信息一致);
    • 描述:补充开发细节(如实现功能、测试场景、依赖说明),示例
    复制代码
      1. 开发内容:AICR 应用首页核心组件(卡片、趋势图)、接口请求逻辑(数据拉取、异常处理);
      2. 测试情况:本地验证接口联调正常、分支已同步目标分支最新代码;
      3. 依赖说明:无额外依赖,兼容现有项目架构。
    • 选择审核人员,点击「提交合并请求」。

      PR 后续:处理审核意见与合并

    • 审核反馈:若审核人员提出修改建议,在本地分支修改后,执行 git add .git commit -m "PR修改:xxx"git push,修改会自动同步到已发起的 PR 中;

    • 合并完成:审核通过后,由管理员点击「合并」按钮,将个人分支代码合并到目标分支;

    • 分支清理(可选):合并完成后,若无需保留个人分支,可在平台删除远程分支,本地执行 git branch -d feature/V25-1107-LSP 删除本地分支。

三、关键问题与避坑指南

  1. 推送时提示「non-fast-forward」拒绝 :原因是本地分支历史与远程不一致(如执行过 rebase),用 git push --force-with-lease 安全强制推送;
  2. rebase 过程中冲突反复出现 :可能是多次提交与远程代码冲突,耐心逐次解决,每次解决后执行 git add .git rebase --continue
  3. PR 合并时提示「存在冲突」 :回到本地分支,重新执行 git fetchgit rebase 同步远程目标分支最新代码,解决冲突后推送,PR 会自动更新;
  4. 提交信息不规范:统一遵循「分支标识:功能 + 操作」格式,便于后续代码追溯与问题定位。
相关推荐
paishishaba4 小时前
Git常用命令大全及提交推送详解
git
卡洛斯(编程版6 小时前
大仓库推到GitHub大踩坑-Git LFS从安装到使用
git·github
玥轩_5216 小时前
Git命令速查手册
大数据·git·elasticsearch·gitee·github·命令速查
诸葛思颖11 小时前
把本地 Python 项目用 Git 进行版本控制并推送到 GitHub
git·python·github
chhanz1 天前
git/github入门基操(终端版)
git·github
林晓lx1 天前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
诸葛思颖1 天前
一个本地 Git 仓库关联多个远程仓库
git
StarShip1 天前
git commit --amend 之后,想要修改为git commit , 如何处理?
git
dnpao1 天前
在服务器已有目录中部署 Git 仓库
运维·服务器·git