Git 的版本控制模型基于快照(snapshot)。每次提交,Git 都会对整个仓库制作一个快照,并生成对应的版本号。
Git 的三个主要区域:
- 工作目录(Working Directory):包含项目的所有文件,此区域的文件会随开发而频繁更改。
- 暂存区(Staging Area):临时保存即将提交的文件列表。在提交之前,可以在此区域添加、删除文件,完成提交前的准备工作。
- 仓库(Repository):包含项目的历史记录,每个提交都会生成一个版本,并包含快照。通过版本号可以随时查看项目的历史状态。
每个文件会随着版本的提交在这三个区域间转换:
工作目录 -> 暂存区 -> 仓库
例如一个简单的提交过程:
- 在工作目录中修改 README.md 文件。
- 将 README.md 添加到暂存区:
git add README.md
- 提交暂存区中的文件到仓库:
git commit -m "Update README.md"
- README.md 文件就此被提交到仓库,快照被创建,版本号增加。
如果继续修改 README.md 文件,那么此文件又会回到工作目录。如此循环,版本不断增加,文件不断在三个区域间转换。
我们可以通过下面的命令查看文件在不同区域的状态:
- 工作目录:
git status
- 暂存区:
git status
- 仓库:
git log
git show <version> # 查看指定版本的快照
所以,Git 的版本控制模型为我们提供了一个简单高效的管理代码版本的流程。
明白 Git 的三个主要区域及文件在这些区域间转换的规律,可以让我们更好的利用 Git 进行代码版本管理。