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) ...
随机推荐
- DNS攻击
DNS攻击 实验是基于Linux系统,配置了bind9服务的机器 大纲 本地修改Host文件重定向路径到指定地址 对User的DNS查询进行欺骗攻击 在同一局域网下,对DNS服务器的DNS查询进行欺骗 ...
- 【Java123】Java基础知识点
https://github.com/xbox1994/2018-Java-Interview 虽说不为面试做准备,仅仅就工作中遇到的很多Java问题,总是模棱两可的擦肩而过,真不是自己的风格. 还是 ...
- oracle全量、增量备份
采用0221222增量备份策略,7天一个轮回 也就是周日0级备份,周1 2 4 5 6 采用2级增量备份,周3采用1级增量备份 打开控制文件自动备份 CONFIGURE CONTROLFILE AUT ...
- matlab sign函数用法及实例
在MATLAB科学计算过程当中,我们经常需要对我们的计算公式或者计算结果检验其符号,,sign函数就给我们提供了这种方便,下面就通过实例介绍一下matlab sign函数 的用法,希望能够给您带来帮助 ...
- 关于npm --save还是-save的横岗数量的细节的记录
最近又开始鼓捣npm了,所以得稍微记录一下. 首先是npm install xxx --save 和 npm install xxx -save这两的区别(注意加粗的部分,横杠数不一样).当我搜索-- ...
- PAT A1155 Heap Paths (30 分)——完全二叉树,层序遍历,特定dfs遍历
In computer science, a heap is a specialized tree-based data structure that satisfies the heap prope ...
- mysql编码问题:
在my.ini文件改为: [client]default-character-set = utf8port=3306 [mysql] default-character-set=utf8 [mysql ...
- char.IsLetter的使用
先看一下下面的代码,大家会觉得控制台输出什么? 输出:Chiantxt .对吗? 因为你看到char.IsLetter这个方法的文字的注释是这样写的: 但实际上输出的结果是这样的: ??? 怎么还输 ...
- Django 学习第三式
1.Django请求生命周期 两种情况:最终返回的是字符串 1.-> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 2.-> URL对应关系(匹配) -> ...
- ThinkPad T43续命记
// Description: 原作于2016年8月25日. Mr. Robot 最近有部叫<黑客军团>(Mr. Robot)的戏比较火.目前第二季已经出到一大半了,深得技术宅和技术宅仰慕 ...