当前位置: 首页 > news >正文

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

问题描述

  • 最近在 RT-Thread 时,使用 Git 回退版本验证问题,后来 git pull 拉取最新代码后,发现里面有几个文件,一直为【修改】状态,并且无法还原,git checkout xxx git 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 使用起来还是比较的高效方便,便于代码的管理,一些高级的操作,可以慢慢积累

http://www.lryc.cn/news/67244.html

相关文章:

  • Julia入门-3、Julia包管理工具
  • 选择正确的 Azure 存储服务
  • 隐语团队研究成果再创佳绩,两篇论文分别被USENIX ATC‘23和IJCAI‘23接收!
  • 美团数据指标体系搭建实战
  • prometheus实战之五:飞书通知告警
  • 【华为OD机试真题】不含101的数(python版)100%通过率 超详细代码注释 代码解读
  • 基于AT89C52单片机的交通信号灯设计
  • chatGPT4.0-基于Python+Appium的APPUI关键字驱动自动化测试框架demo
  • C++模板进阶
  • 【人力资源管理】第4集 免费开源ERP: Odoo 16 Appraisal员工绩效评估 构建一体化企业人力资源管理
  • 「AI 孙燕姿」翻唱华语乐坛歌曲爆红全网,AI 翻唱将带来哪些影响?是否会有版权等问题?
  • 路径规划算法:基于灰狼优化的路径规划算法- 附代码
  • 推荐系统综述
  • SQLIST数据库编程
  • vue2中操作对象的方法
  • 左值引用、右值引用,std::move() 的汇编解释
  • LiangGaRy-学习笔记-Day11
  • 【异常解决】浏览器无法访问此网站ERR_UNSAFE_PORT/网页可能无法连接,或者它已永久性地移动到了新网址问题解决方案
  • Python函数的参数
  • 【Hive大数据】Hive分区表与分桶表使用详解
  • C#NPOI操作Excel详解
  • CSS中文字体 Unicode 编码表
  • 《微服务实战》 第四章 Spring Cloud Netflix 之 Eureka
  • 11. 深入理解并发编程-AQS与JMM
  • 深度解耦:使用Jetpack新技术Hilt实现依赖注入
  • C++ 构造函数-2
  • 网安笔记 08 key management
  • Linux socket
  • 14.构造器的排序分组.子查询
  • 【剑指 Offer】05,替换字符创中的空格;难度等级:简单。易错点:C++中 char 和 string 类型的转换