git checkout更新阶段区域吗?

时间:2015-06-05 17:07:07

标签: git

可以通过git reset更新分段区域,是否有git checkout(或许多额外参数)从新HEAD更新分阶段区域?

更新:在结帐文件和分支/提交时,似乎git的行为不同。

  1. 如果没有指定文件,则更新HEAD 指向/切换到给定的分支/提交,如果分阶段区域和工作树有任何更改,它将发出警告并阻止交换机。例如,git checkout DevBranch
  2. 如果指定了文件但没有分支/提交,则会将指定文件从暂存区域复制到工作树,并且不会触摸舞台区域(不更新HEAD )。例如,git checkout file.txtgit checkout -- file.txt
  3. 如果同时指定了分支/提交和文件,它将从给定的分支/提交更新阶段区域和工作树中的指定文件(不更新HEAD )。例如,git checkout DevBranch -- file.txt

1 个答案:

答案 0 :(得分:3)

当您指定分支或提交到git checkout时,临时区域确实已更新,工作目录也已更新。所以,例如:

git checkout head~1 myfile.txt

将获取head的父级中的myfile.txt版本,并将其复制到暂存区域工作目录。如果您没有指定提交或分支,即:

git checkout myfile.txt

然后myfile.txt的内容将被的临时区域复制到工作目录;暂存区域本身不会改变。