第2章 引用侦探社:分支只是指针


第2章 引用侦探社:分支只是指针

章节摘要:打开 refs 目录你会发现,传说中的分支只是一个写着 40 位哈希的文本文件。本章从这个证据出发,讲透 HEAD、detached HEAD、合并与冲突、变基改写历史——所有"分支魔法"还原为指针的移动与对象的新建。

学习目标

  1. 能直接查看分支引用文件并解读其内容
  2. 能用对象模型区分 checkout、merge、rebase 各自动了哪些指针与对象
  3. 能在冲突现场通过三个提交哈希理清"公共祖先在哪"
  4. 能预判变基操作的改写后果并安全执行

核心概念速览

金句:创建分支是纳秒级操作,因为 Git 只是新建了一个 41 字节的文件——没有复制代码,没有通知任何人。

为什么用指针视角讲分支

市面上绝大多数 Git 教程把分支讲成"平行宇宙",听起来形象,实则把因果讲反了:不是先有分支再有提交,而是先有提交链、再有人类为了称呼方便给链上的某些位置起了名字。名字(引用)与实体(提交对象)的分立,是 Git 一切分支操作的复杂度之源,也是一切"看似神奇"行为的唯一解释路径。本章请你暂时忘掉"平行宇宙",只记住一条公理:提交不可变,引用可随便挪。后面三节的所有推理,都从这条公理出发。带着它,你会发现 merge 的冲突、rebase 的哈希变化、HEAD 的游离状态,全部是公理的推论而非孤立的知识点。

子章节导航

2.1 分支与 HEAD 指针

refs 目录勘查:分支引用、HEAD 文件、detached 状态的真相与风险。

2.2 合并的两种形态与冲突勘查

fast-forward 与三方合并的分界线,冲突标记背后的 base/ours/theirs 三方证据。

2.3 变基与拣选:改写历史

rebase 如何逐个"复印"提交到新基线,cherry-pick 如何单点搬运,以及黄金法则。

子章节之间的逻辑关系

三节从"分支是什么"到"分支怎么汇合"再到"分支怎么被重写",是引用模型由静到动的展开。

2.1 引用与 HEAD 静态结构 │ 分支交汇时 ▼ 2.2 merge 冲突勘查 │ 想要更直的历史 ▼ 2.3 rebase 与 cherry-pick 改写术 ​

前置知识与后续延伸

  • 前置:第 1 章的 commit 对象与哈希链。
  • 为后续铺垫:第 3 章的撤销命令、第 4 章的远程分支(refs/remotes)都建立在本章的引用模型上。

引用拓扑全景

引用拓扑全景

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U