在工作区修改后保存的文件,未提交or提交到暂存区,如何取消修改

我们在readme.txt中添加了一些内容,如下;

Git is a distributed version control system
Git is free software distributed under the GPL
Git has a mutable index called stage
Git tracks changes of files
My stupid boss still prefers SVN

这个时候还没有提交到暂存区,使用git status显示如下:


图片.png

这个时候我们可以看到,如果我们想丢弃这个修改,就可以使用git check -- 来实现:


图片.png

我们再来查看下readme.txt文件,就可以看到这次的修改已经取消了,显示的是这次修改前的内容。

当然,还有一种可能的情况,就是文件已经提交到了暂存区内,现在如何取消
用git add来增添到暂存区之后,用git status来看下状态,显示如下:


图片.png

可以看到用git reset HEAD来将在暂存区的内容撤销掉,重新放入工作区:


图片.png

现在再来用git status来看下目前的状态:
图片.png

这样,显示的是此内容已经不再暂存区了,已经回到了工作区。

这样我们再用上面所说的git checkout -- file来修改工作区的内容,放弃此次的修改,回到修改前的状态。
查看readme.txt,显示的内容无误。

还注意到了一个:git reset可以用来把暂存区的内容回退到工作区,也可以在文件用commit提交后回退到历史的任一版本,当然reset后面跟的是不同的命令符。

小结

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考穿梭到历史的任一版本一节,不过前提是没有推送到远程库。

以上是我看廖雪峰老师的网站,然后做的学习摘抄,无意侵犯老师作品,如有侵犯,我会删除。

你可能感兴趣的:(在工作区修改后保存的文件,未提交or提交到暂存区,如何取消修改)