版本控制与 Git 是什么
为什么需要版本控制,Git 与集中式工具的区别。
20 分钟
版本控制与 Git 是什么
在 CodeRoadMap 里写课程、改路线图、部署 platform,都会频繁改动很多文件。如果没有版本控制,你很快会遇到这些问题:改坏了找不回上一版、不知道谁改了什么、两个人同时改同一文件互相覆盖。
版本控制(VCS) 就是给项目变更做「有记录的存档」,让你能对比、回退、协作。
学习目标
- 说清「为什么需要版本控制」
- 区分集中式与分布式 VCS 的典型差异
- 知道 Git 在本站学习路径里处于什么位置(全栈 / git-github 路线图)
没有版本控制时会发生什么
假设你在改 src/app/page.tsx:
- 你复制一份
page.tsx.bak,继续改原文件 - 同事也在改同一个文件,你们用微信传 zip
- 上线后发现首页白屏,但
.bak是三天前的,中间还改过别的
这就是手工备份的极限:没有完整历史、没有变更说明、合并靠运气。
版本控制每次保存(提交 commit)都会记录:
- 改了哪些文件
- 谁改的、什么时候
- 附一句说明(commit message)
集中式 vs 分布式
| 集中式(如 SVN) | 分布式(Git) | |
|---|---|---|
| 完整历史 | 主要在服务器 | 每个克隆都有完整历史 |
| 离线提交 | 通常不行 | 可以本地先 commit |
| 分支 | 较重 | 轻量、常用 |
| 协作模型 | Checkout 锁定感强 | push/pull 交换变更 |
Git 是分布式的:你在本机就有完整仓库,和 GitHub / 自建 Git 服务器同步时再 push。
Git 在本站学什么、不学什么
本 track git-essentials 面向日常开发协作,对应路线图里 Git / GitHub 节点:
- 会:安装配置、提交、分支、合并、远程 push/pull、简单冲突
- 暂不深入:Git 内部对象存储、hooks 高级用法、大型 monorepo 策略
学完建议继续:
- 全栈路线图 → 在真实项目里用分支开发功能
- 打开任意开源项目 GitHub 页,对照
.git本地目录与远程 commit 历史
三个核心概念(先建立直觉)
-
仓库(repository)
项目目录 +.git隐藏文件夹,存全部历史。 -
工作区 / 暂存区 / 仓库
- 工作区:你正在编辑的文件
- 暂存区(stage):
git add后、等待提交的快照 - 仓库:
git commit后永久写入的版本
-
分支(branch)
一条独立的开发线。默认常有main或master,新功能在feature/xxx上做完再合并。
后面几课会手把手操作;这里只要记住:。