1. Git 文件状态概述
1.1 文件状态的重要性
在 Git 中,文件状态决定了我们可以对文件执行哪些操作。了解文件当前状态可以:
- 避免提交不希望提交的文件
- 确保需要提交的文件被正确提交
- 有效管理文件修改历史
1.2 Git 状态分类
Git 文件主要有五种状态:
- Untracked:未跟踪状态
- Unmodified:未修改状态
- Modified:已修改状态
- Staged:暂存状态
- Deleted:已删除状态
关键理解:Git 不关心文件两个版本之间的具体差别,而是关心文件的整体是否有改变。判断方法是用 SHA-1 算法计算文件的校验和。
2. 详细解析各种文件状态
| 状态 | 描述 | 转换方式 |
|---|---|---|
| Untracked | 文件在文件夹中,但未加入 Git 库 | git add → Staged |
| Unmodified | 文件已入库,未修改 | 修改 → Modified git rm → Untracked |
| Modified | 文件已修改,但未进行其他操作 | git add → Staged git checkout → Unmodified |
| Staged | 文件已添加到暂存区 | git commit → Unmodified git reset HEAD → Modified |
| Deleted | 文件已从工作目录删除 | git commit → Unmodified |
2.1 Untracked(未跟踪状态)
定义:文件在文件夹中,但并未加入到 Git 库,不参与版本控制 转换方式:
- 通过
git add命令变为 Staged 状态
2.2 Tracked(已跟踪状态)
被纳入版本控制,包含三种子状态:
2.2.1 Unmodified(未修改状态)
- 文件已入库,未修改
- 版本库中的文件快照与文件夹中完全一致 状态转换:
- 修改后变为 Modified 状态
- 使用
git rm移出版本库变为 Untracked 状态
2.2.2 Modified(已修改状态)
- 文件已修改,但未进行其他操作 状态转换:
- 通过
git add进入 Staged 状态 - 使用
git checkout丢弃修改(撤销),返回 Unmodified 状态
2.2.3 Staged(暂存状态)
- 文件已添加到暂存区,等待提交 状态转换:








