Git:基础
Eijux(讨论 | 贡献)2020年9月18日 (五) 00:12的版本 (建立内容为“category:Git == 工作区、暂存区、版本库 == right|600px File:Git笔记 工作区、暂存区和…”的新页面)
工作区、暂存区、版本库
- 工作区:(
workspace
)就是电脑里的工作目录。 - 暂存区:(
stage
/index
)。就是存放在.git
目录下的index
文件(即.git/index
)。 - 版本库:(
repository
)就是工作区的隐藏目录.git
。
其中:
- HEAD:当前活跃分支的游标;
- objects:Git的对象库,位于 ".git/objects" 目录下,包含了创建的各种对象及内容;
- 执行
git add
命令(对工作区修改(或新增)的文件):暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中; - 执行
git commit
提交操作:暂存区的目录树写到版本库中,当前分支会做相应的更新。即HEAD
指向的目录树就是提交时暂存区的目录树; - 执行
git reset HEAD
命令:暂存区的目录树会被重写,被HEAD
指向的目录树所替换,但是工作区不受影响; - 执行
git rm --cached <file>
命令:会直接从暂存区删除文件,工作区则不做出改变; - 执行
git checkout .
(或git checkout -- <file>
)命令:会用暂存区全部或指定的文件替换工作区的文件(会清除工作区中未添加到暂存区的改动); - 执行
git checkout HEAD .
(或git checkout HEAD <file>
)命令:会用HEAD
指向的当前分支中的全部或者部分文件替换暂存区和以及工作区中的文件(不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动)。