Git 使用手册 · 终极篇:工程化、安全与团队规范

这是 Git 手册系列的最后一篇。前三篇解决了"会用 → 用得对 → 懂原理",本篇解决最后一件事:让 Git 在团队和工程体系里成为可靠的基础设施,并在灾难发生时救得回来。 目录 Monorepo vs Polyrepo:仓库拓扑决策 大型仓库的性能优化 提交规范:Conventional Commits 签名提交与提交者验证 密钥防护:从预防到泄漏处置 CI/CD 中的 Git 技巧 灾难恢复 SOP 一套可直接落地的团队 Git 规范 终极速查表 Monorepo vs Polyrepo:仓库拓扑决策 Monorepo(一个仓库存所有项目) Polyrepo(每项目一个仓库) 跨项目改动 一次提交原子完成 要发版、升依赖、多 PR 联动 代码共享 直接 import 发包 / submodule CI 需要增量构建,配置复杂 简单直接 权限边界 靠 CODEOWNERS,粒度粗 天然隔离 克隆体积 大(可用 sparse checkout 缓解) 小 代表 Google、Meta、Vue、React 生态 多数中小团队 决策建议: 项目间强耦合、频繁联动发布(如前端组件库 + 应用)→ monorepo 团队/项目独立、发布节奏不同、需要强权限边界 → polyrepo 不确定就先 polyrepo;拆容易,合回去很难 monorepo 配套工具:Nx、Turborepo、Bazel(构建缓存与增量)、changesets(多包版本管理)。 ...

2026-08-22 · 4 分钟 · 677 字 · heyaohua

Git 使用手册 · 高级篇:原理、调试与仓库工程

这是 Git 手册系列的第三篇。前两篇讲"怎么用",本篇讲"为什么":理解了 Git 的内部模型,所有命令都会变成推理题而非背诵题;再配上一批工程化工具,解决"什么时候出的 bug"、“仓库太大”、“多仓库依赖"这类真实难题。 目录 Git 对象模型:blob、tree、commit、tag 引用:分支、HEAD、tag 都只是指针 彻底理解 merge / rebase / cherry-pick bisect:二分查找"哪次提交引入了 bug” worktree:一个仓库多个工作区 submodule 与 subtree:仓库套仓库 hooks:在关键时刻自动执行脚本 Git LFS 与大文件 仓库瘦身:清理历史中的大文件 高级调试与诊断 Git 对象模型:blob、tree、commit、tag Git 本质是一个内容寻址的文件系统 + 一个版本控制外壳。.git/objects/ 下只有四种对象: 对象 内容 类比 blob 文件的内容(不含文件名) 文件快照 tree 一个目录:文件名 → blob/tree 的指针列表 文件夹快照 commit 指向一个 tree + 父 commit 指针 + 作者/时间/信息 一次版本 tag(附注) 指向一个 commit + 标签信息 里程碑 所有对象用内容算 SHA-1(新版支持 SHA-256)哈希作为 id:内容相同 → id 相同,这就是 Git 去重和完整性校验的原理。 ...

2026-08-22 · 4 分钟 · 753 字 · heyaohua

Git 使用手册 · 中级篇:分支协作、冲突与历史修改

这是 Git 手册系列的第二篇。初级篇解决了"能用",本篇解决"用得对":多人协作不打架、冲突不慌、历史能改得干净。 目录 分支模型:选一个然后坚持 merge 与 rebase:到底用哪个 冲突的正确解法 reset 的三种模式(soft / mixed / hard) stash:临时收摊子 cherry-pick:挑一个提交带走 修改历史:amend 与交互式 rebase reflog:你的后悔药 tag 与发布 中级常见错误 分支模型:选一个然后坚持 个人 / 小团队:Trunk-Based(主干开发) main 是唯一长期分支,随时可发布 功能分支从 main 切出,活 1~3 天,合并后立即删除 配合 PR/MR 做代码评审 git switch -c feature/xxx main # 开发、提交 git push -u origin feature/xxx # 提 PR,评审通过后合并 git switch main && git pull git branch -d feature/xxx 需要同时维护多个发布版本:Git Flow main:线上版本;develop:集成分支 feature/*、release/*、hotfix/* 各司其职 重,只有确实需要多版本并行(如 SaaS + 私有化部署)才用 结论:90% 的团队用 Trunk-Based 就够了。分支模型越简单,协作成本越低。 ...

2026-08-22 · 3 分钟 · 621 字 · heyaohua

Git 使用手册 · 初级篇:从第一次提交开始

这是 Git 手册系列的第一篇。目标只有一个:让你今天就能用 Git 管好自己的代码,并且知道每条命令在干什么。不理解原理没关系,先把工作流跑通。 目录 Git 是什么,解决什么问题 安装与初始配置 四个区域:工作区、暂存区、本地仓库、远程仓库 第一次提交 日常三板斧:status / add / commit 查看历史 撤销与回退(安全版) 连接远程仓库(GitHub / GitLab) 分支是什么(先会用最基础的) 初级常见错误 Git 是什么,解决什么问题 没有 Git 的时候,你是这样管理代码的: project/ project-final/ project-final-v2/ project-final-v2-真的最终版/ Git 做的事:把项目的每一次修改记录成"快照"(commit),你可以随时查看任何历史版本、回到任何历史版本、同时维护多条并行的修改线(分支),并和别人协作而互不覆盖。 安装与初始配置 # macOS brew install git # Ubuntu / Debian sudo apt install git # Windows:安装 Git for Windows(自带 Git Bash) 第一次使用必须先配置身份,否则提交会带上机器默认的匿名信息: git config --global user.name "你的名字" git config --global user.email "[email protected]" git config --global init.defaultBranch main 验证: ...

2026-08-22 · 3 分钟 · 508 字 · heyaohua