Git 协作防坑指南——从冲突到回滚,30个真实团队事故
文章平均质量分 86
Git 协作,一半时间在解冲突?本专栏用30个真实团队事故,手把手教你:合并/变基冲突、回滚灾难、stash 丢失、子模块陷阱。每章配可复现 Docker 仓库 + 命令序列 + 防坑配置。不堆概念,只救火。从第一行命令开始,彻底告别 `HEAD` 恐惧。
余额抵扣
助学金抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
sfishfly
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第8章:灾难恢复——reflog是最后的底牌
`git reflog` 的核心原理——HEAD 的移动记录。用 reflog 找回 `git reset --hard`、`git rebase`、`git branch -D` 丢失的 commit。`git fsck --lost-found` 的终极用法。远程仓库被强制覆盖后,如何从本地 reflog 恢复整个分支。 > **配套资源**:一个灾难恢复演练 Docker 镜像(包含 5 种丢失场景)、reflog 自动备份脚本、`git rescue` 万能别名。 > **真实踩坑**:我曾原创 2026-06-14 00:03:13 · 6 阅读 · 0 评论 -
第7章:Git Hooks + CI——提交前自动检查
Git Hooks 的 14 种钩子,重点实战 `pre-commit`、`commit-msg`、`pre-push`。用 `pre-commit` 钩子自动格式化代码、检查大文件、禁止 `console.log` 调试语句。团队级 Hooks 分发方案:`core.hooksPath` 和 `git-template`。CI 中自动检查 commit message 规范(如 Conventional Commits)。 > **配套资源**:一个完整的 `pre-commit` 钩子示例(支持 N原创 2026-06-14 00:02:59 · 125 阅读 · 0 评论 -
第6章:子模块与子树——大仓拆小仓的陷阱
`git submodule` 的完整生命周期——添加、更新、克隆、删除。子模块 detached HEAD 状态的成因与解决方案。`git subtree` 与 `git submodule` 的对比与选型决策树。 > **配套资源**:一个包含三个子模块的复杂依赖仓库 Docker 镜像、子模块批量更新脚本、subtree 合并推送脚本。 > **真实踩坑**:我曾修改子模块代码后忘记提交,主仓库记录了不存在的 commit hash,导致 CI/CD 全线飘红;还曾因为子模块嵌套过深,`git原创 2026-06-14 00:02:49 · 127 阅读 · 0 评论 -
第5章:团队协作9种死法——cherry-pick、stash、bisect
`git stash` 的 6 种实战用法(push、pop、apply、list、drop、clear)。`git stash pop` 冲突导致 stash 丢失如何找回?`git cherry-pick` 挑选特定 commit,连续 cherry-pick 的冲突处理技巧。`git bisect` 二分查找引入 bug 的 commit,并自动化运行测试脚本。 > **配套资源**:一个“stash 丢失模拟” Docker 仓库、bisect 自动化脚本模板、cherry-pick 冲突批量解原创 2026-06-14 00:02:08 · 131 阅读 · 0 评论 -
第4章:回滚的艺术——reset、revert、restore到底用哪个
> **本章你将彻底搞懂**:`git reset --soft`、`--mixed`、`--hard` 三种模式的区别与使用场景。`git revert` 与 `git reset` 的本质区别(安全逆向 vs 改写历史)。新版 Git 中 `git restore` 如何替代 `git checkout -- <file>`。 > **配套资源**:一个“回滚决策树”思维导图(Mermaid 可复制)、`git undo` 万能别名、`git reset` 事故恢复脚本。 > **真实踩坑**:原创 2026-06-14 00:01:58 · 87 阅读 · 0 评论 -
第3章:rebase 噩梦——改写历史后怎么救
> **本章你将彻底掌握**:`git rebase -i` 交互式变基的 6 种指令(pick、reword、edit、squash、fixup、drop)。变基过程中遇到冲突,如何正确使用 `git rebase --continue`、`--skip`、`--abort`。`git rerere` 如何记住你的冲突解法,让重复冲突自动解决。 > **配套资源**:一个故意“乱序变基”的 Docker 练习仓库、`git-rebase-todo` 别名集合、`rerere` 启用与配置脚本。 >原创 2026-06-14 00:01:45 · 150 阅读 · 0 评论 -
第2章:合并冲突不再怕——3种冲突的图形化解法
> **本章你将彻底掌握**:为什么会出现 `<<<<<<< HEAD`?三路合并到底怎么工作的?3 种冲突类型(内容冲突、修改删除冲突、二进制冲突)的图形化解法。团队协作中如何用 `git merge --no-ff` 保留分支历史?`git rebase` 何时用、何时绝对禁用? > **配套资源**:一个可一键生成的冲突模拟仓库(含 3 个分支的预设冲突场景)、我私藏的 `git-conflict` 别名集合、`git mergetool` 配置模板。 > **真实踩坑**:我曾在一个 20原创 2026-06-14 00:01:32 · 162 阅读 · 0 评论 -
第1章:第一次提交就炸了——从零理解Git对象模型
> **本章你将彻底搞懂**:Git 到底怎么存文件的?为什么 `git add .` 会把 `node_modules` 也扔进去?仓库体积暴涨到 2GB 如何自救? > **配套资源**:一个故意“中毒”的 Git 仓库 Docker 镜像(可直接跑起来练习)、`.gitignore` 十级模板、`git config` 推荐清单。 > **真实踩坑**:我亲手把一个 300MB 的 `.env` 文件提交到了生产仓库,差点泄露数据库密码。原创 2026-06-14 00:01:21 · 143 阅读 · 0 评论
分享