✍️记录自己的git分支管理实践

前言

👋 你好啊,我是你的人类朋友!

因为本人的开发经常涉及各个分支间的同步,这一套同步的流程从刚开始的小心翼翼,到现在相对熟悉了

所以我想记录下自己工作中常用的分支同步的步骤 😆

顺便研究康康有没有可以优化的地方 🍃

正文

先介绍下背景情况吧

首先主分支为 master

其次,因为开发分为多个阶段,比如 phase_1phase_2phase_3

那就在 master 之后再创建 feature/phase_1feature/phase_2 这样的分支,作为每一个 phase 的主分支

每一个人的开发分支可以这样安排:我叫江建清,所以我的 phase2阶段 的开发分支的名称为feature/phase_2_devjjq

重点来了,我现在要将我的 feature/phase_2_devjjq 分支的改动同步到 feature/phase_2 分支中

如何操作呢?

重点!重点!重点!

先上 git 命令,后面有文字版

  1. git checkout feature/phase_2
  2. git pull origin feature/phase_2
  3. git checkout feature/phase_2_devjjq
  4. 【✨ 将冲突放到 feature/phase_2_devjjq 分支解决,完全不影响 feature/phase_2git merge feature/phase_2
  5. 解决好可能存在的冲突【注意,如果此处存在冲突,要进行解决,并且要做好测试。确保无误之后再进行后续的同步。⚠️❗ 核心的思路是:绝不可以将不能确定解决之后是否存在异常的内容推送到当前阶段的主分支,这一点在低代码领域尤其突出,需要更加谨慎】,然后将代码提交到 feature/phase_2_devjjq 分支中
  6. git checkout feature/phase_2
  7. git merge feature/phase_2_devjjq
  8. git push origin feature/phase_2

上面就是我目前的大致做法了。

用文字总结就是:

  1. 先切换到 feature/phase_2 分支
  2. 拉取feature/phase_2的最新代码(因为各个同事都会开发,也都会向这个分支提交代码)
  3. 切换到 feature/phase_2_devjjq 分支
  4. 合并 feature/phase_2 分支到 feature/phase_2_devjjq 分支
  5. 解决可能存在的冲突
  6. 切换到 feature/phase_2 分支
  7. 合并 feature/phase_2_devjjq 分支到 feature/phase_2 分支
  8. 推送 feature/phase_2 分支到远程仓库

好了,那我的流程有哪些可以优化的地方?

优化流程

当前的流程总结下来是这样的:

步骤分解:

  1. git checkout feature/phase_2 ✅

  2. git pull origin feature/phase_2 ✅

  3. git checkout feature/phase_2_devjjq ✅

  4. git merge feature/phase_2 ⚠️ (产生合并提交)

  5. 解决冲突 ✅

  6. git checkout feature/phase_2 ✅

  7. git merge feature/phase_2_devjjq ⚠️ (再次产生合并提交)

  8. git push origin feature/phase_2 ✅

我们可以这样优化:

bash 复制代码
# 1-2. 更新目标分支(保持不变)
git checkout feature/phase_2
git pull origin feature/phase_2

# 3. 切换到开发分支
git checkout feature/phase_2_devjjq

# 4. ✨ 关键优化:使用 rebase 而不是 merge。这个步骤做的事情其实就是将 feature/phase_2_devjjq 分支的提交放到 feature/phase_2 分支的最新提交之后。
git rebase feature/phase_2

# 5. 解决可能的冲突(在 rebase 过程中)
# 如果有冲突:
git add .
git rebase --continue

# 6-7. 快速前进合并
git checkout feature/phase_2
git merge feature/phase_2_devjjq  # 这会是一个 fast-forward 合并

# 8. 推送
git push origin feature/phase_2

之前有写过关于 git 变基 的文章,不太清楚这个概念的小伙伴可以去康康
关于git 的快速合并 ,我之前也有写过文章,不太清楚的小伙伴可以去康康!

详细解读

我原来的流程会产生多余的合并提交,让提交历史变得复杂。

我的优化核心: 在第 4 步用 rebase 代替 merge

优化后的效果是什么呢?

  • 将我的提交"移植"到 phase_2 最新代码之后,保持提交线整洁
  • 后续合并时能使用快速前进,不产生额外合并提交
  • 最终提交历史是清晰的一条直线,便于追踪

😎 小总结: 我用 rebase 让我的改动"接上"最新代码,merge 时直接快速前进,保持提交历史干净利落。

最后

✍️ 上面就是我想分享的分支管理实践了以及优化后的效果了

抛砖引玉,希望能对大家有所帮助!

相关链接

相关推荐
用户8356290780511 分钟前
如何使用 Python 在 PowerPoint 演示文稿中添加漏斗图
后端
ServBay6 分钟前
Qwen3.7-Max 发布,全能智能体基座
后端·aigc·ai编程
小新1107 分钟前
从零开始 Vue.js
前端·javascript·vue.js
KeepPush27 分钟前
Python JSON 完全指南:从基础到实战,掌握数据交换核心技能
后端
naildingding28 分钟前
Vue基础核心
前端·vue.js
弱鸡前端30 分钟前
纯前端实现pdf从生成到下载
前端
明月_清风38 分钟前
TanStack + Cloudflare 边缘实战:从 0 到 1 构建全栈应用
前端·全栈
东风破_38 分钟前
你天天用的 Python dict,90% 的人没搞懂这三个坑
前端
Cosolar39 分钟前
深度测评 | QoderWork:当 AI 不再只是"聊天搭子",而是真能帮你干活的桌面智能体
人工智能·后端·程序员
前端Hardy40 分钟前
21.8 万周下载!这个 React 表格组件,10 行代码就能跑起来
前端·javascript·后端