有关 GIT 结构的示意图
关于 Checkout 和 Reset 的区别
撤销对于单个文件的修改
如果该文件已经通过 add 提交到了Stage(index)区域:
- 那我们首先要用 git reset HEAD <file> 从 stage 区域中撤销。
- 再从工作区中撤销,即用 Stage 中的文件替换working directory 中的
git checkout -- <file>
再次说明下:checkout 只是把文件撤回到上一次 commit 或者上次 add 的状态,具体而言,文件修改后还没有放回到 stage 区域,那么执行 checkout 后,文件会变成跟版本库中一样,假设文件修改后已经被放到 stage 区域,执行 checkout,那文件恢复至跟 stage 区域一致。
网友评论