git版本控制在ide中,很方便的回退一个文件,只需要git->revert就可以了。但是有时候,我们会在命令行下操作git。比如部署到生产环境的时候,我们不想打包,而是想通过git pull拉取远程仓库中的文件,但是偶尔需要修改一些文件,这时候如果需要再次拉取,那么就可能会出现冲突错误。
修改的文件处于仓库中最新版本和上次拉取的版本之间。这种问题在开发中如果团队分工出现问题,大家同时修改了一个文件,然后一个人先提交了,而另一个人想要提交或着拉取最新文件的时候就出现冲突了。
[root@buejee webapp]# git pull
Updating 874a967..670bcf6
error: Your local changes to the following files would be overwritten by merge:
index.html
Please, commit your changes or stash them before you can merge.
Aborting
一般这种问题的解决办法就是恢复文件到上一个版本,然后再拉取最新的代码,然后将自己修改的部分加入到恢复之后并且拉取到最新的文件中,再提交就没有问题了,那么我们需要解决:如何恢复这个文件到上一个版本。
这种需要对单个文件进行回退的解决办法就是使用checkout,这里分为两种情况,默认,我们在命令行下进行的修改是不会把文件git add到缓存中去的,所以一般只需要:
git checkout index.html(文件名),默认情况下,直接git checkout就回退生效了。