Git 作为目前最流行、最强大的分布式版本控制系统,早已渗透到从个人开发到大型企业级项目的每一个环节。无论是多人协作时的代码冲突解决、开发过程中的版本回溯,还是跨环境的代码同步、分支管理,Git 都以其高效、安全、灵活的特性,成为开发者必备的核心工具。
然而,多数开发者对 Git 的使用仍停留在'会用基础命令'的层面——知道用 git add 提交暂存、git commit 提交本地、git push 推送远程,却未必理解这些命令背后的底层逻辑:暂存区 (Stage)、本地仓库 (Local Repository)、远程仓库 (Remote Repository) 之间的数据流是怎样的?Git 如何高效追踪文件的每一次变更?分布式架构与 SVN 等集中式版本控制系统相比,核心优势到底体现在哪里?
本文将分为上下两篇,全面、深入地剖析 Git 的原理与使用。其中上篇将重点聚焦 Git 的核心原理——从版本控制的本质出发,拆解 Git 的核心架构、关键对象 (Blob、Tree、Commit)、三大区域的工作机制,以及 Git 追踪文件变更的底层逻辑,帮你建立对 Git 的系统性认知,打破'知其然不知其所以然'的困境。
1. 初识 Git
在软件开发中,为了防止文档丢失或更改失误后能恢复到原来的版本,我们往往需要复制多个副本,比如'报告-v1'、'报告-v2'……随着版本数量增多,维护成本急剧上升。为了解决这个问题,版本控制器应运而生。
所谓的版本控制器,就是一个可以记录工程的每一次改动和版本迭代的系统,同时也方便多人协同作业。目前最主流的版本控制器就是 Git。Git 可以控制电脑上所有格式的文件,例如 doc、excel 等。对于我们开发人员来说,Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件。
需要注意的是,所有的版本控制系统,Git 也不例外,其实只能跟踪文本文件的改动,比如 TXT 文件、网页、所有的程序代码等等。版本控制系统可以告诉你每次的改动,比如在第五行加了一个单词'Linux',在第八行删了一个单词'Windows'。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从 100KB 改成了 120KB,但到底改了啥,版本控制系统不知道。
2. Git 安装
Git 是开放源代码的代码托管工具,最早是在 Linux 下开发的。开始也只能应用于 Linux 平台,后面慢慢的被移植到 Windows 下,现在,Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上正常运行了。
2.1 Linux—CentOS 系统安装 Git
如果你的平台是 CentOS,安装 Git 相当简单,以 CentOS 7.6 为例:
首先,你可以试着输入 git,看看系统有没有安装 Git:
git -bash: git: command not found
出现像下面的结果,Linux 会友好地告诉你 Git 没有安装。
安装 Git:
sudo yum -y install git
查看 Git 安装的版本:
git --version
2.2 Linux—Ubuntu 系统安装 Git
如果你的平台是 Ubuntu,安装 Git 也相当简单,以 Ubuntu 22.04 为例:
首先,你可以试着输入 git,看看系统有没有安装 Git。由于可能已经提前装过了,所以在查看的时候会出现对应的版本信息,初次安装时所展示的信息是


