写在前面
用了很久git,习惯于add-commit-push的命令行操作,但对git的原理不怎么了解,最近翻看《Pro Git》,借此重新熟悉git,因此记录。
git文件状态
git项目中的文件大致有3种状态:
- modified(已修改):修改了文件,但还没保存到数据库中
- staged(已暂存):对一个已修改文件的当前版本做了标记,将在下次提交中包含此文件,对应命令为git add
- committed(已提交):数据已经保存在本地数据库中,对应命令为git commit
git工作区
在git项目中,不同状态的文件处于不同的section(工作区)中。在git中有3个工作区:
- working directory(工作目录):对项目的某个版本独立提取出来的内容,简单理解就是git项目的文件目录
- staging area(暂存区域):一个文件,保存了下次将提交的文件列表信息
- .git directory(git仓库目录):用来保存项目的元数据和对象数据库
git文件状态图
上图中命令/操作将状态转换为靠近其的状态