Mac和Windows之间的行结尾问题

时间:2013-02-26 15:45:13

标签: git

我有一台MacBook,我在Parallels VM中运行Windows。我的开发主要是在Visual Studio中,但我喜欢将Git与Mac shell一起使用(就像它比Windows可用的更好)。

当我执行git diff以确定提交之间发生了什么变化时,我得到的结果是“变化”,这使得git认为实际上已经发生了更多变化。

我知道这是一个古老的问题,我已经做了很多研究,并提出了很多人的不同建议,但我无法解决这个问题。最有希望的信息可以在SO Post找到,但它没有解决我的问题。

以下是我的.gitconfig ...

中的一些相关行
[core]
    autocrlf = false
    safecrlf = false

另外,我的repo根目录中只有一个.gitattributes,只包含...

* text eol=crlf

我可以做些什么来让Git停止思考行结束更改是执行diff时的真正变化?我再次使用Mac shell查看Windows文件,因此这可能是我的问题的一部分。

谢谢!

2 个答案:

答案 0 :(得分:2)

我将gdiff别名为:

git diff -w origin/`git branch | sed --quiet "s/* \(.*\)/\1/p"`

但你可以这样做:

git diff -w

答案 1 :(得分:1)

使用转化工具,例如Perl,perl -i -pne "s/\n/\r\n/g"文件名

unix2dosdos2unix

另见http://en.wikipedia.org/wiki/Newline#Conversion_utilities

有关GIT的配置,请参阅另一个答案:Force LF eol in git repo and working copy