为什么git windows版本的行为与linux版本不同,用于寻址行结束?

时间:2016-01-20 20:06:03

标签: git

我已提及https://help.github.com/articles/dealing-with-line-endings/#platform-linux并在* text=auto中设置.gitattributes

以下是我遇到的问题:

git存储库设置在网络驱动器上,我可以通过Windows或Linux访问它。 如果我运行git.exe(版本2.5.3.windows.1),我会看到很多未分级的文件。

git.exe diff HEAD

但是,如果我在linux下运行git(ver 2.5.3),我将看不到任何未分级的文件。

Windows Git报告差异的原因是,未提交的文件有linux结尾,而提交的文件是以windows行结尾。

问题>为什么不同版本的Gits会在此报告不同的结果?

谢谢

1 个答案:

答案 0 :(得分:3)

使用text=auto,git将提交LF结尾并在Windows上使用CRLF结尾签出,但在Linux上使用专用LF。如果某些克隆者正在使用Windows而其他人正在使用Linux但是如果不同的操作系统共享网络驱动器,那么这种方法很好用,他们会对工作副本中的行结尾应该是什么意见不一致。

如果添加文件,您应该收到每条文件的消息:

warning: LF will be replaced by CRLF in my-file.txt.
The file will have its original line endings in your working directory.

Git会在你提交时自动处理行结尾,所以你真的不需要做任何事情。但是如果你想保持行结尾不匹配不会堵塞git statusgit diff等的输出,你可以改变.gitattributes以使用LF来代替所有东西(假设这不会破坏你的任何东西)在Windows上):

* text eol=lf