windows下git显示文件被修改,实际没有改动的问题解决办法

windows下git显示文件被修改,实际没有改动的问题解决办法

不少开发者可能遇到过这个问题:从git上拉取服务端代码,然后只修改了一处地方,准备提交时,用diff软件查看,却发现整个文件都被修改了。这是git自动转换换行符导致的问题。

原因

不同操作系统使用的换行符是不一样的。Unix/Linux使用的是LF,Mac后期也采用了LF,但Windows一直使用CRLF【回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)】作为换行符。而git入库的代码采用的是LF格式,它考虑到了跨平台协作的场景,提供了“换行符自动转换”的功能:如果在Windows下安装git,在拉取文件时,会自动将LF换行符替换为CRLF;在提交时,又会将CRLF转回LF。但是这个转换是有问题的:有时提交时,CRLF转回LF可能会不工作,尤其是文件中出现中文字符后有换行符时。

解决方案

1.禁用git的自动换行功能:
在本地路径C:\ Users\ [用户名] \ .gitconfig下修改git配置[core],如果没有就直接添加上去:

[core]
autocrlf = false
filemode = false
safecrlf = true

git bash命令行也可以修改,最终也是修改.gitconfig配置文件:
分别执行:

git config --global core.autocrlf false
git config --global core.filemode false
git config --global core.safecrlf true

2.配置IDE开发环境,将它的换行格式指定为LF,以android studio为例:
windows下git显示文件被修改,实际没有改动的问题解决办法

原文:https://blog.csdn.net/whsdu929/article/details/52490188

方法二:

当我们pull完代码时进行修改,修改后提交代码时会发现一些文件并未修改,但显示有差异,而且通过git status查看时是Untracked file如下:

$ git status
On branch master
Your branch is behind ‘origin/master’ by 27 commits, and can be fast-forwarded.
  (use “git pull” to update your local branch)

Untracked files:
  (use “git add <file>…” to include in what will be committed)

        model/src/main/java/

nothing added to commit but untracked files present (use “git add” to track)

 

如果忽略这些问题有时代码可以正常的pull和commit,但有时会导致我们pull代码失败,并提示:

error: The following untracked working tree files would be overwritten by merge

出错的文件正是那些不是我们修改的文件,这时候可以用如下方式进行处理:

1、git fetch origin master

把远端的代码拉倒本地,并把指针放到FETCH_HEAD中

$ git fetch origin master
connected to center BJ
From ssh:****
 * branch            master     -> FETCH_HEAD
Warning: cannot log into influxdb

2、git reset –hard FETCH_HEAD

把本地的代码指针切换到刚刚拉下来的那个指针上;

 

3、git push origin master

把本地的代码推送到远端,其实即使不推送也没问题,因为本地代码跟远端已经一致了;

$ git push origin master
connected to center BJ
Warning: cannot log into influxdb
Everything up-to-date

 

4、git status

再次查看发现那些文件的差异已经没有了

$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.

nothing to commit, working directory clean

5、后面可以继续执行其他操作了

原文:https://blog.csdn.net/weixin_38178584/article/details/81298004

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112449.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 行存储和列存储的优缺点

    行存储和列存储的优缺点按行存储:数据按行存储在底层文件系统中,通常,每一行会被分配固定的空间优点:有利于增加、修改整行记录等操作,有利于整行数据的读取操作缺点:单列查询时,会读取一些不必要的数据按列存储:数据以列为单位,存储在底层文件系统中优点:有利于面向单列数据的读取/统计等操作缺点:整行读取时,可能需要多次I/O操作…

  • 中国电信4g最快服务器IP,中国电信DNS IP地址大全(32个省)

    中国电信4g最快服务器IP,中国电信DNS IP地址大全(32个省)中国电信DNSIP地址,包括广东电信DNS,上海电信DNS,北京电信DNS,浙江电信DNS,江苏电信DNS等共全国32个电信省份的DNSIP地址。中国电信辽宁省沈阳市DNS59.46.69.66中国电信辽宁省大连市DNS59.44.126.20中国电信青海省西宁市DNS202.100.138.68中国电信新疆乌鲁木齐市DNS61.128.114.133中国电信新疆乌…

  • CTK框架使用

    CTK框架使用基于Qt的CTK框架的使用QT的plugin插件的创建方式在介绍CTK框架的使用方法之前我们首先介绍一下QT的plugin插件的创建方式。QT提供两种API来创建插件:扩展Qt库本身的高级API。例如:定制databasedrivers,imageformats,textcodecs,customstyles,etc.扩展应用程序的低级API如果你像创建一个可以在QtDes

  • Redis的数据类型(四)—— Sortedset数据类型

    Redis的数据类型(四)—— Sortedset数据类型**Sortedset数据类型**一、redissortedset介绍在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前N个元素、获取指定分数范围内的元素等与分数有关的操作。在某些方面有序集合和列表类型有些相似。1、二者都是有序的。2、二者都可以获得某一范围的元素。但是,二者…

    2022年10月20日
  • 森林岔路91%_森林的指路牌

    森林岔路91%_森林的指路牌原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

  • 信道带宽_信道和带宽的关系

    信道带宽_信道和带宽的关系信道包括模拟信道和数字信道。在模拟信道,带宽按照公式W=f2-f1计算;数字信道的带宽为信道能够达到的最大数据速率,两者可通过香农定理互相转换。码元:数字信号中每一个符号的通称。即可以用二进制表示,也可以用其它进制的数表示(例如二进制就是0和1表示两个符号,四进制就是0、1、2和3表示四个符号。四进制又可以用二进制表示,00、01、10、11)。码元传输速率,又称为码元速率或传码率。码元…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号