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

作者:你的人类朋友日期:2025/11/11

前言

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

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

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

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

正文

先介绍下背景情况吧

首先主分支为 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 ✅

我们可以这样优化:

1# 1-2. 更新目标分支(保持不变)
2git checkout feature/phase_2
3git pull origin feature/phase_2
4
5# 3. 切换到开发分支
6git checkout feature/phase_2_devjjq
7
8# 4. ✨ 关键优化:使用 rebase 而不是 merge。这个步骤做的事情其实就是将 feature/phase_2_devjjq 分支的提交放到 feature/phase_2 分支的最新提交之后。
9git rebase feature/phase_2
10
11# 5. 解决可能的冲突(在 rebase 过程中)
12# 如果有冲突:
13git add .
14git rebase --continue
15
16# 6-7. 快速前进合并
17git checkout feature/phase_2
18git merge feature/phase_2_devjjq  # 这会是一个 fast-forward 合并
19
20# 8. 推送
21git push origin feature/phase_2
22

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

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

详细解读

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

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

优化后的效果是什么呢?

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

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

最后

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

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

相关链接


✍️记录自己的git分支管理实践》 是转载文章,点击查看原文


相关推荐


草梅 Auth 1.11.0 发布与 GitHub 依赖安全更新 | 2025 年第 45 周草梅周报
草梅友仁2025/11/9

本文在 草梅友仁的博客 发布和更新,并在多个平台同步发布。如有更新,以博客上的版本为准。您也可以通过文末的 原文链接 查看最新版本。 前言 欢迎来到草梅周报!这是一个由草梅友仁基于 AI 整理的周报,旨在为您提供最新的博客更新、GitHub 动态、个人动态和其他周刊文章推荐等内容。 本周依旧在开发 草梅 Auth 中。 你也可以直接访问官网地址:auth.cmyr.dev/ Demo 站:auth-demo.cmyr.dev/ 文档地址:auth-docs.cmyr.dev/ 本周 草梅


理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent
奇舞精选2025/11/7

本文译者为 360 奇舞团前端开发工程师 原文标题:理解 LangChain 智能体:create_react_agent 与 create_tool_calling_agent 原文作者:Anil Goyal 原文地址:medium.com/@anil.goyal… 当我们使用 LangChain 构建 AI 智能体时,首先要做的是选择正确的智能体架构。 目前常用的2种架构是create_react_agent和create_tool_calling_agent。两者都可以让AI使用外部工具


windows npm打包无问题,但linux npm打包后部分样式缺失
悢七2025/11/4

原因 前端package.json中指定的是依赖版本范围,而linux中使用npm install安装的版本与windows不同。 例如"@ant-design/icons": “^4.0.0” 插入符号^意味着它可以安装最新的兼容版本。如果希望它安装特定版本,可以在版本前面删除^。 详见package.json文档和符号学 插入符号将让它安装一个不改变第一个数字的更高版本。例如,你的package.json为@ant-design/icons指定了^4.0.0,但它安装了4.6.2。由


【SCI二区IEEE复现】基于混合有限集模型预测控制(FCS-MPC)的模块化多电平换流器(MMC)整流电路仿真模型(Simulink仿真实现)
荔枝科研社2025/10/31

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭:行百里者,半于九十。 📋📋📋本文内容如下:🎁🎁🎁  ⛳️赠与读者 👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它


2025年前端菜鸟自救指南:从零搭建专业开发环境
良山有风来2025/10/29

你是不是经常遇到这种情况? 新入职一家公司,面对一堆看不懂的配置文件一脸懵逼。同事说“先npm install一下”,你却在终端里卡了半天。好不容易跑起来项目,想改个代码又不知道从哪下手。 别担心,这几乎是每个前端开发者都会经历的阶段。还记得我刚入行时,光是配置个Webpack就折腾了一整天,最后还是在同事帮助下才搞定。 但现在不一样了。经过这几年的实战积累,我总结出了一套超级简单的前端环境搭建方法。今天就把这套方法论完整分享给你,让你在2025年能够快速上手任何前端项目。 为什么你需要专业的开


两张大图一次性讲清楚k8s调度器工作原理
有态度的下等马2025/10/26

面试常被追问k8s调度器工作原理,一图胜10086句言,收藏 == 学废。😣😣 kube-scheduler负责将k8s pod调度到worker节点上。 当你部署pod时,在manifest文件pod规格上会指定cpu、memory、亲和性affinity、污点taints、优先级、持久盘等。 调度器的主要工作是识别create request然后选择满足要求的最佳节点。 分步解释: Pod Create Request: 外部系统(kubectl、cicd)发出了创建一个新pod的


LeetCode第1710题 - 卡车上的最大单元数
小南家的青蛙2025/10/23

题目 解答 class Solution { public int maximumUnits(int[][] boxTypes, int truckSize) { Arrays.sort(boxTypes, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return o2[1] - o1[1]; } });


MySQL的整体架构及功能详解
程序新视界2025/10/22

在前面的系列文章中,我们讲解了MySQL基础功能相关的知识,在这篇文章中,重点讲讲MySQL的整体架构,以便在后续的学习中更好的了解所讲的功能属于MySQL的哪一部分,以及前后相关的工作流程。 MySQL整体架构图 这里我们以MySQL官方提供的整体架构图为基准,确保知识的权威性和准确性。 通过上图,我们可以看到,MySQL架构设计总共分为四层,分别是客户端层,服务层,存储引擎层与系统文件层。 下面,我们就来看看各层的详细功能及特性。 客户端层 客户端层是MySQL架构中的最顶层,即架构图中的


SpringBoot “分身术”:同时监听多个端口
风象南2025/10/21

前言 在日常开发中,我们通常构建的 Spring Boot 应用都是"单面"的——一个端口,一套服务逻辑。但在某些实际场景中,我们可能需要一个应用能够"一心二用":同时提供两套完全不同的服务,分别在不同的端口上运行。 比如: 一个端口面向外部用户,提供 API 服务 另一个端口面向内部管理,提供监控和运维功能 或者在一个应用中同时集成管理后台和用户前台 场景示例 假设我们要开发一个电商平台,需要同时满足: 用户端服务(端口8082) 商品浏览 购物车管理 订单处理 管理端服务(端口808


LeRobot 机器人学习(Robot Learning)入门教程(一)
具身智能与人形机器人2025/10/19

系列文章目录 目录 系列文章目录 前言 一、前言 二、引言 2.1 LeRobotDataset 2.1.1 数据集类的设计 2.2 代码示例:批处理(流式)数据集 2.2.1 批处理(流式)数据集 2.3 代码示例:收集数据 2.3.1 记录数据集 前言         机器人学习正处于一个转折点,这得益于机器学习的快速进步以及大规模机器人数据日益普及。这种从经典的基于模型的方法向数据驱动、基于学习的范式转变,正在为自主系统释放前所未有的能力。本教程全面梳理现代机

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0