跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
Shell / Bash

Git 分支管理与代码合并规范(master/dev 场景)

Git 分支管理规范涵盖 master 与 dev 分支的核心流程。包括仓库初始化克隆或关联远程、dev 分支日常开发与提交、定期同步主分支更新。支持指定提交 cherry-pick 或整分支合并至 master,并提供冲突处理及代码回退操作指南。强调推送前必拉取、提交粒度控制及数据安全备份,确保团队协作顺畅。

云朵棉花糖发布于 2026/3/23更新于 2026/5/420K 浏览

Git 分支管理与代码合并规范(master/dev 场景)

本文整理了 Git 日常开发中涉及 master(主分支)和 dev(开发分支)的核心操作流程,包含仓库初始化、分支开发、代码合并、冲突处理、代码回退等关键场景。

一、初始化仓库(首次使用)

场景 1:直接克隆远程仓库(推荐,避免关联问题)
# 克隆远程仓库到本地(自动创建本地仓库并关联远程)
git clone 远程仓库地址
# 示例:git clone https://github.com/用户名/仓库名.git
# 进入仓库目录
cd 仓库名
场景 2:本地先建仓库,再关联远程
# 本地初始化仓库
git init
# 添加文件并首次提交
git add .
# 暂存所有文件
git commit -m "首次提交:初始化项目"
# 关联远程仓库(远程仓库需提前在平台创建)
git remote add origin 远程仓库地址
# 首次拉取远程历史(若远程有内容,必须执行,否则推送报错)
git pull origin master --allow-unrelated-histories
# 仅首次需要
# 推送本地仓库到远程(-u 绑定上游分支,后续可直接 git push)
git push -u origin master

二、日常开发核心流程(dev 分支开发)

1. 分支准备(确保基础分支最新)
# 切换到本地 master 分支
git checkout master
# 拉取远程 master 最新代码
git pull origin master
# 切换到本地 dev 分支(若无则创建:git checkout -b dev)
git checkout dev
# 合并远程 master 到本地 dev(同步主分支更新)
git fetch origin master
git merge origin/master
2. 本地开发与提交
# 查看文件状态(确认修改/新增文件)
git status
# 暂存修改(单个文件/所有文件)
git add 文件名
# 暂存单个文件
git add .
# 暂存所有修改(推荐)
# 提交到本地仓库(备注需清晰,仅包含单个功能点)
git commit -m "功能:完成 dev 分支 XX 模块开发"
3. 推送本地 dev 到远程 dev
# 首次推送 dev 分支到远程(-u 绑定上游)
git push -u origin dev
# 后续修改后推送(已绑定上游,直接推送)
git push
4. 定期同步主分支更新(减少冲突)
# 在 dev 分支中拉取并合并远程 master 最新代码
git pull origin master
# 若出现冲突(终端提示 "Automatic merge failed"):
# 1. 打开冲突文件,删除冲突标记(<<<<<<< HEAD、=======、>>>>>>> origin/master)
# 2. 保留需要的内容,保存文件
# 3. 标记冲突已解决并提交
git add .
# 标记所有冲突文件已解决
git commit -m "合并 master 到 dev,解决 XX 模块冲突"
git push
# 推送到远程 dev 分支

三、代码合并(dev → master)

场景 1:合并 dev 分支指定提交到 master

适用于仅需合并 dev 分支中某一个提交(而非整个分支)的场景:

# 1. 切换到 master 分支并检查工作区
git checkout master
git status
# 2. 暂存 master 分支未提交的修改(若有)
git stash
# 3. 拉取远程 master 最新代码
git pull origin master
# 4. 查找 dev 分支中需要合并的提交哈希值
git checkout dev
git log --oneline -n 10
# 查看最近 10 条提交,复制目标哈希值(如 23919c9)
# 5. 切回 master 分支,执行 cherry-pick 合并指定提交
git checkout master
git cherry-pick 23919c9
# 6. 若 cherry-pick 出现冲突,解决后提交
git add .
git commit -m "cherry-pick:合并 dev 分支 23919c9 提交到 master"
# 7. 推送合并后的 master 到远程
git push origin master
# 8. 恢复 master 分支暂存的修改(若有)
git stash pop
# 9. 验证提交结果(确认指定提交已合并)
git log
# 查看提交历史
场景 2:合并整个 dev 分支到 master

适用于 dev 分支功能开发完成,需整体合并到主分支的场景:

# 1. 切换到 master 分支并拉取最新
git checkout master
git pull origin master
# 2. 合并远程 dev 分支到本地 master
git merge origin/dev
# 3. 若出现冲突,解决后提交
git add .
# 标记冲突已解决
git commit -m "合并 dev 分支到 master,解决 XX 模块冲突"
# 4. 推送 master 到远程(可测试完成后推送)
git push origin master
# 5. 验证合并结果
git log
# 查看提交历史,确认 dev 分支代码已合并
场景 3:合并后清理(可选)

若 dev 分支功能已完全合并到 master 且无需保留,可清理分支:

# 删除本地 dev 分支
git branch -d dev
# 删除远程 dev 分支(确认不再需要时执行)
git push origin --delete dev

四、代码回退操作

需将本地指定文件回退到历史提交版本,并重新提交推送的场景:

# 1. 回退指定文件到历史提交版本(替换哈希值和文件路径)
git restore --source=054f3b -- backend/app/api/v1/module_visualization/service.py
# 2. 暂存回退后的文件
git add backend/app/api/v1/module_visualization/service.py
# 3. 提交回退操作
git commit -m "回退:将 XX 文件恢复到 054f3b 版本"
# 4. 拉取远程最新代码(避免推送冲突)
git pull origin dev
# 若操作的是 dev 分支
# 5. 推送回退后的代码到远程
git push origin dev

五、关键注意事项

1. 推送前必拉取

无论推送到 master 还是 dev 分支,推送前必须执行 git pull origin 分支名,确保本地与远程同步,避免推送被拒绝(rejected 错误)。

2. 分支规范
  • 主分支(master):保持可运行状态,不直接修改;
  • 开发分支(dev):从 master 创建,用于日常功能开发;
  • 功能分支(可选):feature/功能名(从 dev 创建,开发独立功能);
  • 修复分支(可选):bugfix/问题名(从 dev 创建,修复开发分支问题)。
3. 提交与合并规范
  • 提交粒度:每次提交仅包含一个功能点(如'修复 dev 分支登录按钮样式'),避免大量无关修改;
  • 冲突处理:必须删除冲突标记(<<<<<<< / ======= / >>>>>>>),不确定保留内容时及时沟通;
  • 合并后提交:冲突解决后必须先 git commit 标记状态,推送可延后(如测试完成后)。
4. 数据安全
  • 定期备份:dev 分支开发到关键节点(如完成子模块),立即推送到远程 dev 分支;
  • 暂存恢复:使用 git stash 暂存未提交修改,合并完成后通过 git stash pop 恢复。

六、冲突处理专项

1. 冲突标记识别

冲突文件中会出现以下标记,需全部删除:

<<<<<<< HEAD (本地分支的代码)
=======
>>>>>>> origin/master
2. 冲突处理流程
  1. 打开冲突文件,删除上述标记;
  2. 保留正确的代码内容(可与团队确认);
  3. 执行 git add . 标记冲突已解决;
  4. 执行 git commit 提交(备注需说明'解决 XX 冲突');
  5. 推送当前分支到远程(如 dev → 远程 dev,master → 远程 master)。

总结

  1. 核心流程:dev 分支开发 → 定期同步 master 更新 → 合并(指定提交/整分支)到 master → 推送验证;
  2. 冲突关键:推送前必拉取、删除冲突标记、解决后先提交再推送;
  3. 分支原则:master 保持稳定不直接开发,dev 分支承接日常开发,提交粒度小且备注清晰。

目录

  1. Git 分支管理与代码合并规范(master/dev 场景)
  2. 一、初始化仓库(首次使用)
  3. 场景 1:直接克隆远程仓库(推荐,避免关联问题)
  4. 克隆远程仓库到本地(自动创建本地仓库并关联远程)
  5. 示例:git clone https://github.com/用户名/仓库名.git
  6. 进入仓库目录
  7. 场景 2:本地先建仓库,再关联远程
  8. 本地初始化仓库
  9. 添加文件并首次提交
  10. 暂存所有文件
  11. 关联远程仓库(远程仓库需提前在平台创建)
  12. 首次拉取远程历史(若远程有内容,必须执行,否则推送报错)
  13. 仅首次需要
  14. 推送本地仓库到远程(-u 绑定上游分支,后续可直接 git push)
  15. 二、日常开发核心流程(dev 分支开发)
  16. 1. 分支准备(确保基础分支最新)
  17. 切换到本地 master 分支
  18. 拉取远程 master 最新代码
  19. 切换到本地 dev 分支(若无则创建:git checkout -b dev)
  20. 合并远程 master 到本地 dev(同步主分支更新)
  21. 2. 本地开发与提交
  22. 查看文件状态(确认修改/新增文件)
  23. 暂存修改(单个文件/所有文件)
  24. 暂存单个文件
  25. 暂存所有修改(推荐)
  26. 提交到本地仓库(备注需清晰,仅包含单个功能点)
  27. 3. 推送本地 dev 到远程 dev
  28. 首次推送 dev 分支到远程(-u 绑定上游)
  29. 后续修改后推送(已绑定上游,直接推送)
  30. 4. 定期同步主分支更新(减少冲突)
  31. 在 dev 分支中拉取并合并远程 master 最新代码
  32. 若出现冲突(终端提示 "Automatic merge failed"):
  33. 1. 打开冲突文件,删除冲突标记(<<<<<<< HEAD、=======、>>>>>>> origin/master)
  34. 2. 保留需要的内容,保存文件
  35. 3. 标记冲突已解决并提交
  36. 标记所有冲突文件已解决
  37. 推送到远程 dev 分支
  38. 三、代码合并(dev → master)
  39. 场景 1:合并 dev 分支指定提交到 master
  40. 1. 切换到 master 分支并检查工作区
  41. 2. 暂存 master 分支未提交的修改(若有)
  42. 3. 拉取远程 master 最新代码
  43. 4. 查找 dev 分支中需要合并的提交哈希值
  44. 查看最近 10 条提交,复制目标哈希值(如 23919c9)
  45. 5. 切回 master 分支,执行 cherry-pick 合并指定提交
  46. 6. 若 cherry-pick 出现冲突,解决后提交
  47. 7. 推送合并后的 master 到远程
  48. 8. 恢复 master 分支暂存的修改(若有)
  49. 9. 验证提交结果(确认指定提交已合并)
  50. 查看提交历史
  51. 场景 2:合并整个 dev 分支到 master
  52. 1. 切换到 master 分支并拉取最新
  53. 2. 合并远程 dev 分支到本地 master
  54. 3. 若出现冲突,解决后提交
  55. 标记冲突已解决
  56. 4. 推送 master 到远程(可测试完成后推送)
  57. 5. 验证合并结果
  58. 查看提交历史,确认 dev 分支代码已合并
  59. 场景 3:合并后清理(可选)
  60. 删除本地 dev 分支
  61. 删除远程 dev 分支(确认不再需要时执行)
  62. 四、代码回退操作
  63. 1. 回退指定文件到历史提交版本(替换哈希值和文件路径)
  64. 2. 暂存回退后的文件
  65. 3. 提交回退操作
  66. 4. 拉取远程最新代码(避免推送冲突)
  67. 若操作的是 dev 分支
  68. 5. 推送回退后的代码到远程
  69. 五、关键注意事项
  70. 1. 推送前必拉取
  71. 2. 分支规范
  72. 3. 提交与合并规范
  73. 4. 数据安全
  74. 六、冲突处理专项
  75. 1. 冲突标记识别
  76. 2. 冲突处理流程
  77. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • GPT-5.5 超高智商模型1元抵1刀ChatGPT中转购买
  • 代充Chatgpt Plus/pro 帐号了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Topaz Photo AI v1.3.3 汉化便携版:图片降噪与无损放大工具
  • DeepSeek-R1-Distill-Llama-8B 部署:Docker Compose 推理服务
  • 机器人 DH 参数模型与正运动学
  • Unreal Engine 5 C++ 项目编译失败问题排查与解决
  • 基于 AKSHARE 与 AI 的金融数据分析实践
  • Ubuntu 22.04 离线部署 Qwen3-4B 模型:vLLM 与 Docker 多卡配置指南
  • C++ 伸展树与红黑树原理及实现
  • ComfyUI Photoshop插件完整教程:5步实现AI绘画工作流
  • C++ 伸展树与红黑树原理及实现详解
  • C++ 伸展树与红黑树原理及实现
  • 内容生成模式解析:UGC、PGC、PUGC、OGC、MGC、BGC 与 AIGC
  • 基于 AirSim 的无人机深度强化学习路径规划与避障
  • GitHub 开源免费 PDF 编辑器推荐:告别破解,高效编辑
  • C++ STL 容器详解:map 与 set 核心用法与底层逻辑
  • MoltBot 对接钉钉 Stream 流式接入配置指南
  • AIOps 实践:基于 Dify+LangBot 实现飞书智能体对话机器人
  • 二叉树算法实战:深度计算与先序排列求解
  • HarmonyOS 6 凹陷圆形底部导航组件 rc_concave_tabbar 实战指南
  • OrangePlayer:功能完整的 Android 视频播放器开源库
  • 本地部署 Z-Image-Turbo 进行 AI 绘画实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online