git diff

git diff ^M的消除

git diff ^M的消除

这是由于换行符在不同的操作系统上定义的区别造成的。

Windows用CR LF来定义换行,Linux用LF。

CR全称是Carriage Return ,或者表示为\r, 意思是回车。

LF全称是Line Feed,它才是真正意义上的换行表示符。

如果用git diff的时候看到^M字符,就说明两个文件在换行符上有所差别。

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

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

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

https://help.github.com/articles/dealing-with-line-endings这是由于换行符在不同的操作系统上定义的区别造成的。

Windows用CR LF来定义换行,Linux用LF。

CR全称是Carriage Return ,或者表示为\r, 意思是回车。

LF全称是Line Feed,它才是真正意义上的换行表示符。

如果用git diff的时候看到^M字符,就说明两个文件在换行符上有所差别。

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

git config --

global

core.whitespace cr-at-eol

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

https://help.github.com/articles/dealing-with-line-endings


PS:最近又换回了 Linux Mint,作为一个 Linux 桌面黑,有点尴尬。。。:)

换行符是 *nux 与 Windows 系及其他系的各种不兼容问题的代表之一,于是,在不同平台使用 Git 时经常碰到 git status 列出一大串修改过的文件,git diff 查看一下其实只是换行符问题。不多扯了,直接上解决方案:
方案1: 增加 .gitattribute 文件

在 repo 目录下新建 .gitattribute 文件,内容为:

  • text eol=lf

方案2: 修改 Git 配置

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

如果只需要修改当前仓库,去掉 --global。
方案3: 行政命令

下令:一律使用 unix 换行符,违者男的穿裙子,女的不许穿!
参考:

Dealing with line endings

PS:最近又换回了 Linux Mint,作为一个 Linux 桌面黑,有点尴尬。。。:)

换行符是 *nux 与 Windows 系及其他系的各种不兼容问题的代表之一,于是,在不同平台使用 Git 时经常碰到 git status 列出一大串修改过的文件,git diff 查看一下其实只是换行符问题。不多扯了,直接上解决方案:

方案1: 增加 .gitattribute 文件

在 repo 目录下新建 .gitattribute 文件,内容为:

* text eol=lf

方案2: 修改 Git 配置

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

如果只需要修改当前仓库,去掉 --global

方案3: 行政命令

下令:一律使用 unix 换行符,违者男的穿裙子,女的不许穿!

参考:

  • Dealing with line endings

git config --global core.autocrlf input

这样就好了,只在提交的时候转换,也不用下令了,人是靠不住的

你可能感兴趣的:(git diff)