DAG总览 / 组目录 / 前置概念

版本控制基础(Version Control Basics)

G00Layer 0
目录:前置概念账号与仓库版本管理协作项目管理自动化部署工具生态
层导航:L0 当前L1L2L3L4L5L6L7L8
上游 · 理解本功能前需先掌握的(0):
无前置(本功能的认知起点)
下游 · 依赖/承接本功能的(3):
前置依赖包含从属概念升级流程承接 边方向 = 学习顺序(A→B 表示先学 A 再学 B)

为什么需要它

心智模型

你写文档时是不是存过'报告最终版''报告最终版2''报告最终版改改3'?这些文件名背后是版本混乱的痛。版本控制(version control)就是解决这个问题的系统:它记录每一次修改、允许随时回到任意历史版本,还能多人同时协作而不互相覆盖。Git 就是最流行的版本控制工具,学 GitHub 之前必须先懂它。

历史背景 · 它为什么诞生诞生于 1972-2005
诞生软件规模增长后人工备份版本文件极易出错(改错目录、覆盖文件),需系统化记录文件随时间的变化。1972年SCCS开创源码版本控制,RCS以补丁集实现本地版本管理,CVS为RCS加入网络与并发协作,SVN成为集中式主导,单一中央服务器成为标准。
演进集中式CVCS存在单点故障:服务器宕机或磁盘损坏且无备份即丢失全部历史。分布式DVCS(Git/Mercurial/Darcs)让每个克隆都完整镜像全部历史,任意客户端可恢复服务器,还支持离线提交与多种协作拓扑,最终Git成为主流。
历史教训
工具设计的本质是权衡:集中式便于管控但牺牲容灾,分布式牺牲一致性控制换来自主与鲁棒性。核心需求(安全、可恢复、可协作)决定了架构方向。

功能介绍

版本控制(version control)是一套管理系统,用来追踪文件(尤其是代码)随时间的变化。它像一台'时光机':每次修改都会被记录成一个快照,你可以随时回到过去任意一个版本,也能看到'谁在什么时候改了什么、为什么改'。Git 是目前最流行的分布式版本控制工具(distributed version control system)——'分布式'意味着每个开发者的电脑上都有完整的项目历史副本,即使没有网络也能独立工作。相比之下,Word 的'另存为备份'只能手动做、容易忘、还占空间;版本控制自动完成这一切,并为团队协作打下基础。它是 GitHub 的地基,先理解它,后面的所有概念都顺理成章。

核心术语

版本控制(version control):记录文件每次修改的系统Git:最流行的分布式版本控制工具提交(commit):一次被记录下来的修改快照时光机:对版本控制'可回退历史'的形象比喻分布式(distributed):每个开发者本地都有完整历史副本

适用场景

怎么操作(网页 vs 命令行 双轨)

🖱️ 网页操作 (GitHub.com)
  • 在 GitHub 仓库页面打开任意一个文件,点右上角'History'查看修改历史
  • 点某次提交右侧的代码图标,可查看该次改动的具体差异
  • 在仓库页面选择不同分支(branch)或标签(tag)切换查看历史版本
⌨️ 命令行 (进阶)
  • git log # 查看提交历史
  • git diff # 查看当前改动与上次提交的差异
  • git checkout <commit-id> # 回到某个历史版本查看

新手建议先从网页操作入手,熟悉概念后再尝试命令行。命令行是真实开发中更常用的方式。

与其他功能的关系

关系(前置依赖 / 包含从属 / 概念升级 / 流程承接)说明
概念升级Git 与 GitHub(Git vs GitHub)先理解版本控制思想,才能分清 Git 工具与 GitHub 平台
概念升级Git 命令行基础(Git CLI Basics)版本控制思想落地为 Git 命令行基础
概念升级代码片段分享:Gists(片段)gist 是微型 Git 仓库,可 fork/clone,先懂版本控制

官方文档

小结

SUMMARY

版本控制是给文件配的'时光机',记录每次修改、支持随时回退,Git 是其中最常用的工具。理解了这一点,你就有了理解 GitHub 一切功能的基础。下一步:搞清楚 Git 和 GitHub 到底有什么关系。