Git教程
5分钟阅读
Git 基础
一、什么是版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。通过版本控制系统,我们可以:
- 将某个文件回溯到之前的状态
- 将整个项目都回退到过去某个时间点的状态
- 比较文件的变化细节
- 查看最后是谁修改了某个可能出问题的地方
- 谁在何时提出了某个功能请求等等
二、Git 简介
Git 是一个分布式版本控制系统,由 Linux 内核的创始人 Linus Torvalds 在 2005 年开发。Git 的设计目标是:
- 速度:Git 在绝大多数操作上都只需要访问本地文件和资源
- 简单的设计:Git 的数据模型相对简单
- 对非线性开发模式的强力支持:支持数千个并行开发的分支
- 完全分布式:每个 Git 工作目录都是一个完整的仓库
- 有能力高效管理类似 Linux 内核一样的超大规模项目
三、Git 的核心概念
1. 仓库(Repository)
仓库是 Git 存储项目历史记录的地方。它包含了项目的所有文件以及这些文件的完整历史记录。
2. 工作区(Working Directory)
工作区是你在电脑里能看到的目录,是项目文件的当前版本。
3. 暂存区(Staging Area)
暂存区是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。
4. 提交(Commit)
提交是 Git 中的基本单位,代表项目在某个时间点的快照。每个提交都有一个唯一的 SHA-1 哈希值。
5. 分支(Branch)
分支是指向某个提交的可移动指针。Git 的默认分支名字是 main(以前是 master)。
四、Git 的三种状态
Git 有三种状态,你的文件可能处于其中之一:
- 已修改(Modified):表示修改了文件,但还没保存到数据库中
- 已暂存(Staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
- 已提交(Committed):表示数据已经安全的保存在本地数据库中

五、Git 工作流程
基本的 Git 工作流程如下:
- 在工作目录中修改文件
- 暂存文件,将文件的快照放入暂存区域
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录

工作区 → 暂存区 → 本地仓库 → 远程仓库
↓ ↓ ↓ ↓
修改文件 git add git commit git push
六、Git 与其他版本控制系统的区别
集中式 vs 分布式
集中式版本控制系统(如 SVN):
- 有一个单一的集中管理的服务器
- 所有的版本信息都存放在服务器上
- 如果服务器出问题,所有人都无法工作
分布式版本控制系统(如 Git):
- 每个人的电脑上都有完整的版本库
- 不需要联网就可以工作
- 安全性更高,不会因为某一个地方出问题而丢失数据
快照 vs 差异
传统版本控制系统:
- 存储每个文件与初始版本的差异
Git:
- 存储项目随时间改变的快照
- 如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件
七、Git 的优势
- 分布式开发:每个开发者都有完整的项目历史
- 强大的分支功能:创建和合并分支非常快速
- 数据完整性:所有数据在存储前都计算校验和
- 速度快:大部分操作都是本地执行
- 开源免费:完全开源,社区活跃
八、总结
Git 是现代软件开发中不可或缺的工具。理解 Git 的基本概念和工作原理是掌握版本控制的第一步。
在接下来的章节中,我们将学习如何安装和配置 Git,以及掌握 Git 的基本命令和操作。
九、Git 学习路径
学习 Git 的建议路径:
- 基础概念:理解版本控制和 Git 的核心概念
- 安装配置:在你的系统上安装和配置 Git
- 基本操作:掌握日常使用的基本命令
- 分支管理:学习分支的创建、合并和管理
- 远程协作:了解如何与团队协作
- 高级功能:掌握变基、标签等高级功能
- 工作流程:学习不同的 Git 工作流程
- 冲突解决:掌握冲突处理技巧
- 最佳实践:遵循 Git 使用的最佳实践
- 故障排除:学会诊断和解决常见问题
十、实践建议
- 多练习:Git 是一个实践性很强的工具,需要大量练习
- 建立习惯:养成频繁提交、写好提交信息的习惯
- 团队协作:参与开源项目或团队项目来实践协作
- 持续学习:Git 功能丰富,需要持续学习和探索
下一章预告: Git 安装与配置 - 在不同操作系统上安装 Git 并进行基本配置。