git checkout 和 git reset 的区别是什么?

git log --oneline --all

然后git checkout 和 git reset 的区别是什么?

找了些资料也没看明白,希望大神能用通俗的语言讲解一下..T_T

阅读 2.9k
3 个回答

背景知识:

git下操作文件,它有三个“存储”文件的地方

  1. 工作区
  2. 暂存区
  3. 版本库

你只要已修改文件,文件就自动出现在工作区,当你修改完了,使用 git add filename命令后,文件被添加到暂存区。当你使用git commit -m '本次修改备注'命令后,文件(改动)被从暂存区写入了版本库。

回答你的问题

  1. 当你开始修改一个文件后,还没有执行 git add命令前(此时还在工作区),想撤销对这个文件的改动,可以使用git checkout -- filename
  2. 一旦你使用了 git add命令将文件添加到暂存区,此时不想改这个文件了,需要用git reset HEAD filename把文件移会到工作区,再使用第一步的git checkout -- filenmae撤销改动

checkout不改变分支 (ref)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题