面向初学者的 Git 指南
由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!
在本文中,我将向您介绍版本控制系统 (VCS)、Git 本身、您应该学习它的原因,以及其他即使是高级用户也可能不知道的有趣内容。
什么是VCS?
简而言之,版本控制系统是一个记录文件或文件集随时间推移的更改的系统,它允许您稍后返回到项目的特定版本。这意味着即使您或您的同事犯了错误,您也可以轻松返回到项目的最新版本并从那里重新开始。它简化了一切,并为您提供了试验的机会。
VCS的类型
- 本地(RCS)
- 集中式(CVS、Subversion)
- 分布式(Git、Mercurial、BitKeeper)
当地的
本地版本控制系统部署在一台机器上,作为该机器的备份。镜像或差异(项目两个版本之间的差异)不会超出这台机器的范围,就像您在自己的机器上复制了一个文件夹一样。
集中式版本
控制系统安装在同一网络内的本地服务器上,它可以存储来自该网络中所有计算机的快照或差异。
集中式版本控制系统分布式
分布式版本控制系统(VCS)以 GitHub 为例,无论身处世界何地,无论使用哪台电脑,都可以通过互联网将版本存储在同一个云存储空间中。此外,它不仅允许在父级存储和云存储之间移动副本,还允许在不同的父级存储之间移动副本。
分布式版本控制系统和 Git 的优势
- 速度。
- 设计简洁。
- 强力支持非线性开发(数千个并行分支)。
- 完全分布式。
- 能够高效地处理像 Linux 内核这样的大型项目(速度和数据大小)。
基本概念
- 版本是快照,不是差异。
- 几乎所有操作都在本地执行。
- 完整性。所有数据都会计算 SHA-1 哈希值。
- 将数据添加到 git 后,虽然很难(但并非不可能)丢失它们。
- 只有在终端中才能使用完整的git支持。
- 所有文件都只能处于以下几种状态之一:已提交、已修改、暂存。
快照和差异之间的区别
在 Git/Mercurial 的索引过程中,每个项目文件都可能处于以下三种状态之一:
已修改但未暂存:当用户修改项目文件时,Git/Mercurial 目前无法追踪到这些更改。如果文件丢失或意外删除,Git 将无法恢复该文件。
已暂存以提交到仓库:文件修改后,可以将其添加到 Git 暂存区,以便稍后永久提交到仓库。暂存区是一个文件,通常位于项目的仓库目录(`.git`)中,用于存储有关下次提交到仓库的内容的信息。暂存区有时也称为索引。
已提交到仓库:一旦暂存的文件提交到仓库,它们就成为仓库的永久组成部分,之后可以提取(检出)以进行审查或进一步开发。
这三种文件状态构成了 Git 和 Mercurial 的重要组成部分。下图展示了这三种文件状态。
结论
我尝试描述了版本控制系统 (VCS) 和 Git 的几乎所有方面,以及你为什么应该关注它们。下一部分将介绍一些较小的功能,希望你会感兴趣。
你可以在 Discord 上添加我:MarkFusion#2903