`
fantaxy025025
  • 浏览: 1328884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

windows下和linux下,git换行符变化,^M问题,git diff

 
阅读更多

 

windows下和linux下,git换行符变化,^M问题,git diff

 

From:http://www.xuebuyuan.com/1390948.html

Windows用CR LF来定义换行,Linux用LF。CR全称是Carriage Return ,或者表示为\r, 意思是回车。 LF全称是Line Feed,它才是真正意义上的换行表示符。为什么Windows添加一个CR和LF组合表示,我并不清楚。不过如果用git diff的时候看到^M字符,就说明两个文件在换行符上有所差别。

比如从我的Windows开发的同时那边拿来一个目录,就会发现几乎所有的文件都被修改过了。其实并不是这样,都是由于文件多了CR后造成的。

下面简单的方法可以让git diff的时候忽略换行符的差异:

git config --global core.whitespace cr-at-eol

更好的方法是每个项目都有一个.gitattributes文件,里面配好了换行符的设置,参考

https://help.github.com/articles/dealing-with-line-endings(me:此文才是真)

 

From:http://www.cnblogs.com/qkhh/p/5212960.html

开发团队都在 windows 下开发,有IDE管理代码。对我们来说,最好是禁用换行转换符的功能。我用 cygwin 提交代码,提交时总提示自动转换换符。其实都不用提交,仅运行 git status 看有没有提示就知道了。

也是在网上找了一圈,一些建议是运行下面的命令:

git config --global core.autocrlf false

git config --global core.saftcrlf true

如果不运行命令,直接编辑 ~/.gitconfig 增加下面的内容也是一样:

[core]

    autocrlf = false

    safecrlf = true

但并不能解决问题。后来继续找,一篇文章给了我提示。到项目目录下找到一个 .gitattributes 文件,将第一行的 

*text=auto !eof 

改成 *text=

就解决问题了。再运行 git status 不再提示转换。

以此乱文感谢在网上分享的人,现在中文有价值的分享还是少了点。 

 

From:http://blog.sina.com.cn/s/blog_64e1046201019yuh.html 

在不同平台上,换行符是不一样的。比如windows使用的是 crlf,mac或linux用的是lf。

如果开发平台是多样的,比如程序员A在windows上,程序员B在mac或者linux上,那么就需要统一使用换行符。因为不同平台上的GIT,在checkout、commit时,默认会自动转换换行符。所以,你可能会发现,有些时候你并没有修改某个文件,但是git提示你需要add、commit这个文件,就是因为git自动的替换了换行符。

为了避免这种情况,我们需要设置git不要去自动替换换行符。

1 打开某个repo的根目录,打开.gitattributes

2 找到 * text=auto行,如果想统一使用windows格式,修改为 * text=crlf    

 如果想统一使用linux格式,修改为 * text=lf

3 修改完毕后,提交对根目录下的.gitattributes文件的修改

题外话:

建议保持git的全局的换行符自动替换设定,只是针对每个repo做特定的设置。

 

 

+

+

+

=

+

+

+

 

分享到:
评论

相关推荐

    GIT 换行符自动转换导致整个文件被修改的解决方案

    不少开发者可能遇到过这个...而git入库的代码采用的是LF格式,它考虑到了跨平台协作的场景,提供了“换行符自动转换”的功能:如果在Windows下安装git,在拉取文件时,会自动将LF换行符替换为CRLF;在提交时,又会将C

    git git-for-win-master

    在Windows环境下使用Git,需要注意一些特定的配置,比如设置文本文件的换行符处理,可以使用`core.autocrlf`配置项。此外,Windows用户可能会遇到路径长度限制问题,可以通过设置`core.longpaths`来启用长路径支持。...

    淘宝-git优化包 自动配置,只需要一个命令完成所有常用配置

    配置windows下的换行符问题 全局的.gitignore配置,不必在每个仓库下手动配置.gitignore文件了 设置用户昵称和邮箱 设置常用命令缩写 git co = git checkout git br = git branch git ci = git commit git st = git ...

    Git-2.37.0-64位windows安装包

    - **配置设置**:`git config`命令调整Git的行为,如`core.autocrlf`处理换行符问题。 - **缓存性能**:使用`git gc`优化仓库大小,`git fsck`检查仓库健康状况。 8. **Git学习资源**: - **Pro Git**书籍:免费...

    Git操作手册.pdf

    例如,core.autocrlf用于控制自动处理换行符,color(diff, status, branch, interactive)用于设置在不同情况下的颜色输出,http.sslcainfo和http.sslbackend用于SSL证书信息的配置等。 最后,由于文档内容可能是...

    Git-2.15.1.2-64-bit官方版

    5. CRLF/LF转换:自动处理Windows和Unix换行符差异,保证跨平台兼容性。 在安装Git-2.15.1.2-64-bit后,用户可以开始配置自己的Git环境,包括设置用户名和邮箱、选择文本编辑器、以及配置默认的行为。接着,用户...

    Git权威指南PDF完整版

    3.1 在Linux 下安装和使用 Git/ 22 3.1.1 包管理器方式安装/ 22 3.1.2 从源代码进行安装/ 23 3.1.3 从Git版本库进行安装/ 23 3.1.4 命令补齐/ 25 3.1.5 中文支持/ 25 3.2 在Mac OS X 下安装和使用 Git/ 26 3.2.1 以...

    git2.21.0版本安装包(包括64和32bit的) 以及.gitconfit文件

    控制Windows环境下文件的换行符处理。 通过以上配置,你可以根据个人习惯调整Git的行为,提高工作效率。在使用提供的`.gitconfig`文件时,记得根据自己的需求进行适当的修改。一旦设置完毕,Git将成为你进行版本...

    git 资源总结

    1. **换行符问题**:不同系统间的换行符差异可能导致冲突,可以通过设置 `core.autocrlf` 解决,如 `git config --global core.autocrlf true`。 2. **无法提交**:如果提示无内容可提交,可能是没有对文件做任何...

    git status中文乱码md,学习代码

    3. **处理文件换行符**:有时Windows和Unix/Linux系统之间的换行符差异也会导致问题。如果需要在不同系统间协作,可以设置`core.autocrlf`: ``` git config --global core.autocrlf true # Windows到Unix转换 ...

    git的配置文件

    `.gitconfig`文件通常位于用户的主目录下,例如在Unix/Linux系统中是`~/.gitconfig`,在Windows系统中是`%USERPROFILE%\.gitconfig`。这个文件使用INI格式,由一系列键值对组成,每一项都代表一个Git的设置。 以下...

    大数据git初级总结和idea应用

    - **其他配置**:可以使用 `git config core.autocrlf false` 来避免在Windows平台上出现的换行符转换问题。 ##### 2.3 初始化本地仓库 - **创建目录**:首先创建一个要被Git管理的新目录。 - **初始化仓库**:在...

    pretty-xml-textconv:在git diff的命令提示符下将xml转换为漂亮的形式

    pretty-xml-textconv file.xml >> out.txtgit的用法对于在所有git存储库中的实现,请使用:git config --global diff.xml.textconv pretty-xml-textconv 在特定项目中,.gitattributes中包含以下行: *.xml diff=xml...

    git学习手册

    - **换行符转换**: - 使用默认设置即可。 - **安装完成后的效果**: - 桌面生成“Git Bash”快捷方式。 - 右键菜单新增Git相关功能。 #### 四、基本操作指南 - **创建版本库**: - 版本库(Repository)是Git...

    github创建仓库及gitbash代码管理

    5. 如果遇到 "LF will be replaced by CRLF" 的警告,这是由于文本换行符格式不同,可以在 `.gitattributes` 文件中设置来避免此问题。 在进行代码管理时,还需要注意以下几点: 1. 使用 `git status` 检查当前...

    系统代码修改规范1

    由于很多人在Windows环境下编辑代码,可能会引入Windows风格的换行符(表现为git diff时行尾的^M字符)。使用vim编辑器也能发现这类问题。因此,使用UE编辑后,应确保将代码转换为Unix格式,并在提交前进行检查。...

    IOS开发环境windows化攻略_代码附件.zip

    最后,`mydiff`可能是开发者自定义的一个diff工具,它可能提供了比默认的diff工具更丰富的功能,例如颜色高亮、忽略空格或特定字符的比较,或者更友好的输出格式,以提升在Windows下的代码对比体验。 总的来说,这...

    WinMerge文件diff工具

    例如,可以设置忽略空格、换行符或者特定字符,这在处理编程语言代码时非常有用。此外,还可以设置颜色主题、字体大小,甚至添加自定义过滤器,以适应不同的工作环境。 **5. 快捷键与操作** WinMerge支持键盘...

    diff program

    通过熟练掌握`diff`,开发者可以更有效地进行代码审查、版本控制和问题排查。 总结,`diff`是一个强大的文本比较工具,而`diff3`则进一步扩展了其功能,特别是在版本控制和团队协作中起到了关键作用。理解并掌握...

Global site tag (gtag.js) - Google Analytics