Git 基础架构
在深入 Git 的具体操作之前,我们需要建立对 Git 核心架构和设计哲学的深入理解。这些基础知识将帮助您以专业视角看待 Git,而不仅仅是将其视为一组命令。版本控制的核心原理
版本控制系统 (VCS) 的核心使命是跟踪和管理文件随时间变化的历史记录。在软件工程中,这种能力已经从可选工具变成了基础设施,它提供了以下关键功能:- 变更原子性跟踪: 精确记录每一个变更的内容、作者、时间和目的,建立完整的变更轨迹
- 并行开发协调: 支持多人同时处理相同代码库,并提供智能的冲突解决机制
- 状态精确恢复: 能够将代码库回滚到任何历史时间点,确保系统稳定性和可靠性
- 责任追溯与审计: 提供完整的变更记录,支持代码审计和合规性要求
Git 的三大核心区域与基本工作流程
理解 Git 的工作方式,关键在于理解它的三个核心区域:- 工作目录 (Working Directory): 这是你电脑文件系统中实际看到和编辑的项目文件。它是从 Git 仓库(
.git目录)中检出 (checkout) 的项目的一个版本。 - 暂存区 (Staging Area / Index): 这是一个位于 Git 仓库目录下的文件(通常是
index文件),它保存了下一次将要提交的文件列表信息。你可以把它想象成一个“购物车”或者“准备区”,在你执行git commit之前,用来精心准备和审查你想要包含在下一个版本快照中的更改。这使得你可以分批次地将修改添加到仓库,而不是一次性提交所有改动。 - Git 仓库 (Repository / .git directory): 这是 Git 存储项目元数据和对象数据库的地方。包含了项目完整的历史记录、所有版本的文件快照、分支信息等。当你克隆 (clone) 一个项目时,拷贝的就是这个
.git目录。
Git 的三大区域:工作目录、暂存区和 Git 仓库,以及文件在其中的流转
基本流程:
- 修改文件(工作目录)
git add <file>将文件快照放入暂存区git commit将暂存区内容创建为新的提交,存入 Git 仓库git checkout <branch/commit>用仓库中的版本覆盖工作目录
- 在工作目录中修改文件。
- 使用
git add <文件名>命令,将你想要包含在下一次提交中的更改暂存起来。这会将被修改文件的当前快照添加到暂存区。你可以多次使用git add来暂存多个文件的更改。 - 使用
git commit -m "提交说明"命令,将暂存区中的文件快照永久性地记录到Git 仓库中,形成一个新的版本(称为一个 “commit”)。
首次运行 Git 前的配置
在你开始使用 Git 之前,只需要进行一次全局配置,设置你的身份信息。这非常重要,因为 Git 会将这些信息嵌入到你的每一次提交中,以便他人知道是谁进行了哪些更改。--global 标志:
--global表示这个配置应用于当前操作系统的所有 Git 仓库。配置信息保存在你用户主目录下的.gitconfig文件中。- 如果你想为特定项目设置不同的用户名或邮箱,可以在该项目的根目录下运行不带
--global的相同命令(这会使用--local级别,配置写入项目下的.git/config文件)。 - 还有一个
--system级别,应用于系统上的所有用户,但不常用。
main,建议你也配置 Git 使用 main 作为默认分支名: