跳到主要内容

Git与版本控制

版本控制系统(Version Control System,VCS)是一种软件工具,用于跟踪文件随时间的变化,特别适用于开发中源代码的管理。


一、为什么需要版本控制系统

在没有版本控制系统的情况下,开发者通常使用:

  • 文件复制夹方式来管理版本:

    截图:GitHour

  • 每次改动都手动保存副本,不易管理;

  • 多人协作时,文件容易被覆盖,合并冲突难处理;

  • 无法追踪是谁、何时、为何修改了什么内容。

二、版本控制系统的主要功能

  • 记录每次修改的历史(可以回退到任意版本);
  • 比较不同版本之间的差异;
  • 显示是谁做了哪些修改;
  • 支持多人协作,合并各自的修改;
  • 分支管理,用于并行开发和试验功能。

三、版本控制系统的分类

1. 本地版本控制系统

  • 只在本地追踪文件变化;
  • 示例:RCSSCCS

缺点:不能多人协作。

本地版本控制图解

2. 集中式版本控制系统(Centralized VCS)

  • 所有版本记录保存在一个中央服务器;
  • 开发者需要联网从中央服务器获取或提交更改;
  • 示例:Subversion (SVN)、CVS。

优点:统一管理、简单 缺点:服务器挂了,整个团队受阻;离线不可操作。

image-20250414224101798

3. 分布式版本控制系统(Distributed VCS)

  • 每个开发者本地都有一个完整的版本库;
  • 支持离线提交、查看历史;
  • 示例:Git、Mercurial、Fossil。

优点:离线也能工作,速度快,服务器故障影响小,适合开源协作。

image-20250414223623176

四、Git 简介(现代最流行的 VCS)

  • 分布式版本控制系统;
  • 用“快照”方式记录变化(不是差异);
  • 支持分支与合并;
  • 广泛用于开源和企业项目;
  • GitHub、Gitea、GitLab 等平台基于 Git。

五、Git 基本术语

概念含义
仓库(repository)项目的完整版本数据库
工作区(working directory)当前正在开发的文件夹
暂存区(staging area/index)准备提交的更改集合
提交(commit)一次版本快照
分支(branch)版本演进的独立线索
克隆(clone)复制一个完整的仓库
推送(push)将本地提交同步到远程仓库
拉取(pull)从远程仓库获取更新并合并