要想理解《Git: 撤销修改》一文,必须先学会观察《git status》
命令 | 功能 |
---|---|
git checkout -- <file> | 丢弃暂存区,即:撤销工作区中修改的文件(该文件修改后未被提交),恢复修改之前的文件内容 |
git reset HEAD <file> | 丢弃暂存区,即:撤销上次git add操作,恢复到git add之前的状态 |
git checkout HEAD <file> | 等价于:git reset HEAD <file> + git checkout -- <file> |
- 初始状态:创建了file,git add、git commit
- 修改了工作区,但是未使用git add添加到暂存区,Question:应当如何恢复到之前文件未修改的状态?
Answer:git checkout -- file 丢弃工作区(未提交到暂存区)
的修改。 - 工作区被修改,且被添加到暂存区,Question:应当如何恢复到之前的工作区状态?
Answer:git reset HEAD <file>,使file由git add状态(已添加到暂存区状态),变为未被添加到暂存区状态。