失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 文件一直处于修改状态 git checkout 无法还原的问题解决方法

文件一直处于修改状态 git checkout 无法还原的问题解决方法

时间:2019-01-30 09:23:47

相关推荐

文件一直处于修改状态 git checkout 无法还原的问题解决方法

问题描述

最近在 RT-Thread 时,使用 Git 回退版本验证问题,后来git pull拉取最新代码后,发现里面有几个文件,一直为【修改】状态,并且无法还原,git checkout xxxgit reset --hard都用了,依旧无法还原文件,也就是几个文件一直处于【修改】状态

通过file xxx查看,这些文件是以回车换行符结尾的。

通过git add发现这几个文件由于回车换行引起,全文件都提示修改,但是为何git checkout不能恢复呢?

解决思路

为了还原恢复这几个【顽固】的被修改文件,我尝试了几种方法

第一种方法

git reset --hard commit_id,这里的commit_id要改为这几个文件提交前的 位置,在一些git 提交记录达到 几千几万的时候,这个方法很低效,并且可能还需要多次尝试

总结:不如直接拉取工程代码来的实惠。

第二种方法:

删除工程,重新拉取新的代码。

总结:不推荐,这样的操作,当前工程下一些未提交的本地代码就丢掉了。

第三种方法

推荐的方法:安装 dos2unix 工具,当前确认在 Linux 环境下,测试通过

如果没有 dos2unix,需要安装$ sudo apt install dos2unix

操作流程

$ dos2unix bsp/imxrt/libraries/MIMXRT1170/MIMXRT1176/drivers/fsl_dac12.h$ dos2unix bsp/imxrt/libraries/MIMXRT1170/MIMXRT1176/drivers/fsl_lpadc.h$ git reset --hard

以上操作后,再次运行 git status,发现【顽固】的已修改文件消失了,问题解决

小结

遇到因为回车换行造成的文件修改,并且使用git checkout或者git reset --hard都无法还原的文件的时候,建议使用dos2unix把文件改为 unix 格式,再配合git reset --hard

git 使用起来还是比较的高效方便,便于代码的管理,一些高级的操作,可以慢慢积累

如果觉得《文件一直处于修改状态 git checkout 无法还原的问题解决方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。