跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashVScode大前端

Git 分支管理实战指南

Git 分支管理涉及分支的创建、切换、合并及冲突解决。通过 master 主分支保护策略和开发分支隔离,确保代码稳定。掌握 git stash 处理临时任务,利用 --no-ff 保留完整历史。强制删除分支需谨慎。理解这些机制能有效提升版本控制效率。

PhpPioneer发布于 2026/3/22更新于 2026/10/2592 浏览
Git 分支管理实战指南

分支基础

在 Git 中,每次提交都会形成一条时间线,这实际上就是一个分支。目前只有一条主线,即 master 分支。

理解 HEAD 很重要。它严格来说不是指向某个具体提交,而是指向当前分支(如 master),而 master 才指向具体的提交对象。所以,HEAD 指向的就是当前正在工作的分支。

文章配图

创建与查看分支

我们可以使用 git branch 命令查看当前本地的所有分支。

文章配图

创建第一个自己的分支 dev:

git branch dev

文章配图

文章配图

切换分支

要想切换分支,使用 git checkout [分支名] 命令即可完成切换。

文章配图

观察两个分支的 commit id 是不一样的。

文章配图

切回 dev 看看,修改还在。

文章配图

再切回 master 分支,会发现我们在 dev 分支做的修改不见了。这是因为两个分支执行的提交不一样,相当于下图所示的分叉状态。

文章配图

文章配图

合并分支

为了在 master 主分支上看到新的提交,就需要将 dev 分支合并到 master 分支。使用 git merge [分支名] 执行合并操作,合并后就能在 master 分支上看见修改后的 ReadMe 了。

文章配图

Fast-forward 代表'快进模式',也就是直接把 master 指向 dev 的当前提交,所以合并速度非常快。当然,也不是每次合并都能 Fast-forward。

文章配图

文章配图

删除分支

完成合并分支的操作后,dev 分支的使命也就结束了。使用 git branch -d [分支名] 就可以删除该分支。

文章配图

注意不能在该分支目录下直接删除,否则不被允许。

文章配图

合并冲突处理

当我们使用本地分支 dev 修改文件时,master 分支同时也在修改该文件,Git 就无法自动判断保留哪一方的修改,此时会产生冲突。

本地修改场景:

文章配图

文章配图

文章配图

master 分支修改并尝试合并时:

文章配图

文章配图

ReadMe 文件中会出现冲突标记,需要手动决定保留哪个代码。

文章配图

文章配图

解决冲突后,重新 add、commit 和 merge 即可。可以使用 git log --graph --pretty=oneline --abbrev-commit 查看分支合并情况。

强制禁用 Fast forward 模式

前面提到过,默认 merge 提交时,Git 会使用 fast forward 直接修改 master 指向。但这会导致删除分支后,查看分支信息时没有记录,无法看出这段修改是合并进来的还是原本就在 master 下的。

文章配图

文章配图

Git 支持使用 --no-ff 强制禁用 Fast forward 模式。这样在 merge 时会生成一个新的 commit,从分支历史上就能清楚看出是合并过的。

语法:

git merge --no-ff -m "描述" [分支名]

文章配图

文章配图

分支管理策略

master 主分支要保持稳定。

文章配图

由于多人可以在 master 拉分支开发,团队合作的分支结构通常如下:

文章配图

Bug 分支与 stash 命令

假如我们正在 dev 分支开发,突然 master 上有 bug 需要修复。每个 bug 都可以通过一个新的临时分支来修复,修复后合并,然后删除临时分支。如果 dev 还没开发完无法提交,可以使用 git stash。

文章配图

git stash 可以将当前的工作区信息进行储藏,被储藏的内容可以在将来恢复。

文章配图

使用 stash 后,切换到 master 分支创建分支修改 bug,完成后提交。如何继续 dev 的开发?直接切回去可能发现没写完的代码,这时用 git stash pop 恢复工作区代码。

文章配图

文章配图

另外,恢复现场也可以采用 git stash apply,但恢复后 stash 内容不删除,需用 git stash drop 清理。可以多次 stash,先用 git stash list 查看,再用 git stash apply stash@{0} 恢复指定项。

写完 dev 分支代码后跟 master 合并,若 master 已先合并了 bug 分支,可能导致冲突。解决方法是在自己的分支上先合并 master,解决冲突并测试,再让 master 去合并 dev,这样不影响 master 稳定性。

文章配图

文章配图

文章配图

强制删除分支

当开发的分支代码不再需要时,要删除已经 commit 的分支,需使用 git branch -D [分支名]。

文章配图

目录

  1. 分支基础
  2. 创建与查看分支
  3. 切换分支
  4. 合并分支
  5. 删除分支
  6. 合并冲突处理
  7. 强制禁用 Fast forward 模式
  8. 分支管理策略
  9. Bug 分支与 stash 命令
  10. 强制删除分支

更多推荐文章

查看全部
  • 零基础学习网络安全:核心方向、岗位与入门路径详解
  • Pico 4XVR 1.10.13 版本下载安装指南
  • 纯粹直播:全平台开源直播播放器配置指南
  • 35 岁职场危机:失业困境与技能突围之路
  • LLaMA-Factory 项目介绍与安装部署
  • Session 会话机制原理及 Tomcat 实现分析
  • 基于 Chroma 和 Ollama 搭建本地 RAG 应用
  • 带电/含锂电/储能产品出口的三条合规新变化
  • 基于深度学习的智能害虫识别系统
  • Unity MCP 指南:使用 AI 控制 Unity 编辑器
  • 基于腾讯云 CVM 部署 Clawdbot 并对接 Telegram 机器人
  • Python 2026 发展展望:AI 时代的核心基础设施语言
  • Ilya Sutskever 正式宣布离开 OpenAI,新项目意义重大
  • 5 款免费跨平台 SSH 工具横评:连接稳定性与功能对比
  • Python Selenium 浏览器自动化入门与实战
  • 前端面试深度解析:核心概念与代码实践
  • FPGA 侧 XDMA 接口时序约束与收敛实践
  • Claude Code 进阶指南:配置 Everything 插件打造有记忆的 AI 助手
  • 前端面试题 JavaScript 核心知识点详解
  • Dubbo 服务降级:Mock 机制原理与实战应用

相关免费在线工具

  • 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