Git:基础

来自Wikioe
Eijux讨论 | 贡献2020年9月18日 (五) 00:12的版本 (建立内容为“category:Git == 工作区、暂存区、版本库 == right|600px File:Git笔记 工作区、暂存区和…”的新页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索


工作区、暂存区、版本库

Git 工作区、暂存区和版本库.jpg
Git笔记 工作区、暂存区和版本库.jpg
  1. 工作区:(workspace)就是电脑里的工作目录。
  2. 暂存区:(stage/index)。就是存放在.git目录下的index文件(即.git/index)。
  3. 版本库:(repository)就是工作区的隐藏目录 .git

其中:

  1. HEAD:当前活跃分支的游标;
  2. objects:Git的对象库,位于 ".git/objects" 目录下,包含了创建的各种对象及内容;
  3. 执行git add命令(对工作区修改(或新增)的文件):暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中;
  4. 执行git commit提交操作:暂存区的目录树写到版本库中,当前分支会做相应的更新。即HEAD指向的目录树就是提交时暂存区的目录树;
  5. 执行git reset HEAD命令:暂存区的目录树会被重写,被HEAD指向的目录树所替换,但是工作区不受影响;
  6. 执行git rm --cached <file>命令:会直接从暂存区删除文件,工作区则不做出改变;
  7. 执行git checkout .(或git checkout -- <file>)命令:会用暂存区全部或指定的文件替换工作区的文件(会清除工作区中未添加到暂存区的改动);
  8. 执行git checkout HEAD .(或 git checkout HEAD <file>)命令:会用HEAD指向的当前分支中的全部或者部分文件替换暂存区和以及工作区中的文件(不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动)。