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)


相关推荐

  • spring 注解验证@NotNull等使用方法「建议收藏」

    spring 注解验证@NotNull等使用方法「建议收藏」常用标签@Null被注释的元素必须为null@NotNull被注释的元素不能为null@AssertTrue被注释的元素必须为true@AssertFalse被注释的元素必须为false@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值@DecimalMin(

  • html5 空格_打前端代码用一堆空格符

    html5 空格_打前端代码用一堆空格符html5中的空格符 1,Html中空格&amp;nbsp;&amp;#160; 不断行的空白(1个字符宽度)&amp;ensp; &amp;#8194;半个空白(1个字符宽度)&amp;emsp;&amp;#8195;一个空白(2个字符宽度)&amp;thinsp; &amp;#8201;窄空白(小于1个字符…

  • 用ESC/P控制码,怎样向喷墨打印机传送图形数据啊,包括颜色信息?

    用ESC/P控制码,怎样向喷墨打印机传送图形数据啊,包括颜色信息?

  • Interp1 c++实现

    Interp1 c++实现在网上找了一下,有是有但是我下载下来用的时候结果不对。想修改一下但是搞得迷迷糊糊的,就干脆写了一个,不过只有最简单的线性插值的实现,新手可以直接拿过去用。也希望老鸟也可以不吝赐教,提高一下效率或者优化下结构。cpp文件//—————————————————————————#pragmahdrstop#include”Interpfun.h”//————————

  • 弗曼学习法,你在用吗?

    弗曼学习法,你在用吗?今天简单的谈论一下弗曼学习法,是被学术界认为最niubi的学习方法。理查德.弗曼(1918-1988)1965年获得诺贝尔物理学奖,美籍犹太人,也是最早提出纳米的人。之所以以他的名字命名改学习方法,想必不用说大家也都知道了,总之很厉害一个人就是了。 弗曼学习法的原理,可以用一句话来概括(透过现象看本质),比方说我们刚学习、接触一个知识点,按照正常的逻辑就是去学会怎么使用它就行了,而带来的弊端就是,当时,亦或者一段时间内我们能记得,但是随着时间加长,没有使用过这个知识点,我们便会很快就忘记了。因为我

  • linux安装卸载软件的命令_shell命令卸载软件

    linux安装卸载软件的命令_shell命令卸载软件linux卸载软件命令Linuxprovidesdifferentmethodsforinstallingsoftware.YoucaninstallsoftwarefromthestandardUbuntusoftwarerepositoriesusingtheUbuntuSoftwareCenter,fromoutsideofthestan…

发表回复

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

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