错误并未commit
可能你一不小心改错了,保存之后没有上传
Git is free software.The 3`st update
git tracks changes of files
fuck the boss
如果记得之前的内容自然是最好。如果工作中代码量比较大,可能记不过来,这时候就要用到Git。
git status
查看状态
可以看到git给出的建议
- 使用
git add file
来放到缓存区 - 使用
git checkout -- file
来丢弃工作区的修改
终端输入指令
git checkout -- readme.txt
回车后终端没有打印信息,没有问题
git checkout -- file
就是把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
readme.txt
被修改后还没有被放到暂存区,现在撤销修改就是回到和版本库一模一样的状态readme.txt
已经添加到缓存区,然后又被修改,现在使用撤销指令,就回到添加到缓存区之后的状态
总的来说
git checkout -- file
就是让这个文件回到最近一次git commit
或git add
的状态
再看看readme.txt
里面的内容
已经被还原
错误已被git add
readme.txt
的内容改为
Git is free software.The 3`st update
git tracks changes
fuck the boss again
git add
不小心提交了
git status
查看
不小心添加到了缓存区,但是还没有提交
我们可以看到git给我们的提示:使用git reset HEAD file
把缓存区的修改撤销掉,重新放回工作区
git reset HEAD readme.txt
git status
此时可以看到no changes added to commit
说明缓存区是干净的
然后我们回顾一下如何丢弃工作区的更改——git checkout -- readme.txt
干净了
总结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。