[关闭]
@946898963 2021-06-30T02:05:46.000000Z 字数 1024 阅读 487

Git的分区

Git


工作区和暂存区

  1. Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)
  2. 工作区>>>>暂存区>>>>仓库
  3. git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库,
  4. git diff 查看工作区和暂存区差异,
  5. git diff --cached 查看暂存区和仓库差异,
  6. git diff HEAD 查看工作区和仓库的差异,
  7. git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,
  8. git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区。

Git 工作区、暂存区和版本库

  1. 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
  2. 当执行 git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变。
  3. 当执行 git checkout . 或者 git checkout -- <file> 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
  4. 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

Git 初接触 (三) Git的撤销操作 git reset HEAD --

  1. git reset HEAD -- <file>
  2. 该操作 可以 拉取最近一次提交到版本库的文件到暂存区 并且该操作不影响工作区
  3. 简单的来说 就是可以帮我们从版本库中 拉取文件到 暂存区 当我们把工作区的某个文件弄乱了 我们就可以使用该命令 把版本库中的那个文件拉到暂存区 然后在拉回工作区

&&
如何理解git checkout -- file和git reset HEAD -- file

  1. git checkout -- file;撤销对工作区修改;这个命令是以最新的存储时间节点(addcommit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区
  2. git reset HEAD --file;清空add命令向暂存区提交的关于file文件的修改(Ustage);这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何改变
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注