我已提及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会在此报告不同的结果?
谢谢
答案 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 status
,git diff
等的输出,你可以改变.gitattributes以使用LF来代替所有东西(假设这不会破坏你的任何东西)在Windows上):
* text eol=lf