概述

版本控制,也称为修订控制或源代码控制,是对文档、计算机程序、大型网站和其他信息集合进行更改管理的过程。每个修订都与时间戳和进行更改的人员相关联。修订可以进行比较、恢复,并且对于某些类型的文件,还可以合并。[1]

版本控制系统(VCS)通常作为独立应用程序运行,但也可以嵌入到各种类型的软件中,包括集成开发环境(IDE)。

讨论

版本控制实施了一种系统化的方法来记录和管理文件中的更改。最简单的版本控制是对文件的不同阶段进行“快照”。这个快照记录了快照制作的时间,并且还记录了不同快照之间发生的更改。这使得你能够将文件“回退”到较早的版本。通过版本控制的这一基本功能,可以实现许多其他可能性。[2]

版本控制允许你:

  • 跟踪文件中的开发和更改
  • 记录你对文件所做的更改,以便以后能理解
  • 在保持原始版本的同时,尝试文件的不同版本
  • 合并两个文件版本并管理版本之间的冲突
  • 撤销更改,回退到文件的早期版本

版本控制尤其在促进协作方面非常有用。版本控制系统的最初动机之一是让不同的人能够共同进行大型项目的工作。使用版本控制进行协作比许多其他解决方案提供了更大的灵活性和控制。例如,两个不同的人可以同时在一个文件上工作,然后将这两个版本合并。如果两个版本之间存在“冲突”,版本控制系统会允许你查看这些冲突,并主动决定如何将这两个版本合并成一个新的“第三”文档。通过这种方式,你还可以保留“历史记录”,以防后续需要回退到某个版本。[4]

流行的版本控制系统包括:

  • Git
  • Helix VCS
  • Microsoft Team Foundation Server
  • Subversion

本课程的其余部分将重点介绍使用 Git 版本控制系统。

Git

Git 是一种用于跟踪计算机文件更改并协调多人协作的版本控制系统。它主要用于软件开发中的源代码管理,但也可以用于跟踪任何文件集中的更改。Git 是由 Linus Torvalds 于 2005 年为 Linux 内核开发创建的,并且是免费和开源软件。[6]

免费的公共 Git 仓库可从以下平台获取:

  • Bitbucket
  • GitHub

通过在当前工作目录中创建 .git 子目录来初始化一个新的 Git 仓库:

git init

克隆现有仓库只需要仓库的 URL 和以下 Git 命令:

git clone <url>

克隆之后,仓库通过推送和拉取更改进行同步。如果原始源仓库已经修改,可以使用以下 Git 命令将这些更改拉取到本地仓库:

git pull

本地更改必须添加并提交,然后推送到远程仓库。注意第一个命令末尾的句点(dot)。

git add .
git commit -m "reason for commit"
git push

如果本地和远程仓库之间存在冲突,则需要合并这些更改并推送。如果有必要,可以通过以下命令强制将本地更改推送到远程服务器:

git push --force

关键术语

  • 分支(branch):版本控制下的文件的独立工作副本,可以独立于原始版本进行开发。
  • 克隆(clone):创建一个包含另一个仓库修订的新的仓库。
  • 提交(commit):将工作副本中所做的更改写入或合并到仓库。
  • 合并(merge):将两个更改集应用到文件或文件集的操作。
  • 推送(push):将修订从当前仓库复制到远程仓库。
  • 拉取(pull):将修订从远程仓库复制到当前仓库。
  • 版本控制(version control):对文档、计算机程序、大型网站和其他信息集合的更改进行管理。
  • 版本控制系统(version control systems):通常作为独立应用程序运行,但也可能嵌入到各种类型的软件中,包括集成开发环境(IDE)。

参考文献

  • Programming Historian: An Introduction to Version Control Using GitHub Desktop
  • Wikipedia: Version control
  • Programming Historian: An Introduction to Version Control Using GitHub Desktop
  • G2Crowd: Best Version Control Systems
  • Wikipedia: Git
Last modified: Friday, 10 January 2025, 3:40 PM