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为例:
原文: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
windows下git显示文件被修改,实际没有改动的问题解决办法的更多相关文章
- Windows下GIT的用户密码修改
Windows下GIT的用户密码修改
- Windows下GIT安装与使用(上传远程端)
Windows下GIT安装与使用(上传远程服务器) 1. 登陆http://msysgit.github.io/并下载Git 2. 打开下载的exe文件,一路默认(路径可以去修改).有可能电脑需要 ...
- 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目
分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...
- 图解Windows下 GIT GUI 使用教程
https://jingyan.baidu.com/article/19020a0a7ae6af529c284248.html 本篇经验将和大家介绍Windows下 GIT GUI 使用教程,希望对大 ...
- Windows下Git中正确显示中文的设置方法
Windows下Git中正确显示中文的设置方法 具体设置方法如下: 进入目录etc:$ cd /etc 1. 编辑 gitconfig 文件:$ vi gitconfig.在其中增加如下内容: [gu ...
- Windows下如何检测用户修改了系统时间并且把系统时间改回来
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows下如何检测用户修改了系统时间并且把系统时间改回来.
- Windows下通过脚本快速修改IP地址
Windows下通过脚本快速修改IP地址 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了. 经常要切换ip,所以我写了两个脚本: c:\办公室.bat netsh interface i ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- Windows下Git Bash中VIM打开文件中文乱码
Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 admin@DESKTOP-O99620V MINGW64 /d/项目GGE/Hard_for_GGE (master) ...
随机推荐
- 转载 SpringMVC详解(三)------基于注解的入门实例
目录 1.在 web.xml 文件中配置前端处理器 2.在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器 3.编写 Handler 4.编写 视图 index.jsp ...
- leetcode 206. Reverse Linked List(剑指offer16)、
206. Reverse Linked List 之前在牛客上的写法: 错误代码: class Solution { public: ListNode* ReverseList(ListNode* p ...
- python在图片上写汉字
1.python opencv的putText只能画英文上去 2.借鉴这个https://blog.csdn.net/dcrmg/article/details/79108491 使用pil 首先,你 ...
- PAT A1029 Median (25 分)——队列
Given an increasing sequence S of N integers, the median is the number at the middle position. For e ...
- Java发送QQ邮件
面试的时候被问到这个问题,别人问我用Java发过邮件没有,被问得一脸懵逼.然后就研究了一下,不是很难,按照网上的方法折腾了几天就搞出来了. 首先,使用QQ邮箱发送邮件之前需要在邮箱里面配置,开启pop ...
- 【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比
Drupal 8 最好和最受欢迎的部分之一是新的配置管理系统. 该系统使开发人员很容易将配置导出到代码中.在此之前,开发人员不得不依赖于由Features.Strongarm.UUID.Feature ...
- VS诊断工具打开失败
使用管理员模式打开cmd,输入以下命令~ C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -iC:\Windows\Micros ...
- C# 16进制与字符串、字节数组之间的转换 (转载)
1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine(, )); //十进制转八进制 Console.WriteLine(, )); / ...
- CF939D Love Rescue 并查集
传送门 题意:给出两个由小写字母构成的长度相等的字符串$S$与$T$,给出变换$c1\,c2$表示将两个字符串中所有$c1$字符变为$c2$,求将$S$和$T$通过这种变换变为相等字符串的最少变换次数 ...
- C#宣告一个变量
在C#程序里,宣告一个变量,是件很容易的事情.如下面,宣告一个变量,并赋值: ; Console.WriteLine(type); bool type1 = false; Console.WriteL ...