我在 Windows 机器上使用 git 来处理pull
我的代码。
当其他开发人员pull
在他们的 liunx 机器上从服务器获取文件时,他们^M
在第一行的末尾有 。
如何让 git 为我处理这个问题?
我的意思是,git
当我(从我的窗口机器)推送服务器上的代码时,应该更改行的结尾(删除第一行末尾的 control+M 或 ^M)。
我在 Windows 机器上使用 git 来处理pull
我的代码。
当其他开发人员pull
在他们的 liunx 机器上从服务器获取文件时,他们^M
在第一行的末尾有 。
如何让 git 为我处理这个问题?
我的意思是,git
当我(从我的窗口机器)推送服务器上的代码时,应该更改行的结尾(删除第一行末尾的 control+M 或 ^M)。
这个 GitHub帮助页面处理这个非常具体的主题,并引导人们完成正确配置 Git 配置的步骤。
基本上,如果您使用的是 Mac/Linux,请使用
$ git config --global core.autocrlf input
如果您是 Windows 用户,请使用
$ git config --global core.autocrlf true
注意:这将在执行签出或提交时即时转换您的行尾,并确保您的文本文件在您的存储库中具有 LF 行尾,而在您的工作目录中具有本机行尾。
注意 2:这不会重写您的存储库的历史记录。回购中的现有提交将保持其潜在的混合行结尾。
注意 3:确保每个提交者在下一次提交之前执行此配置步骤。
存在一种替代方法,它不涉及强迫每个人更改他们的配置。它需要将特定的文件名.gitattributes添加到您的存储库。有关他的主题的更多信息,请参阅 git 官方gitattributes 文档。
注 4:Tim Clem,一个 github,发表了一篇非常详细的博文(Mind the End of Your Line),关于行尾、相关的配置条目和 gitattributes 的好处。如果您愿意很好地掌握概念、“为什么”和内部机制,那么这绝对是必读的。
尝试将 设置 core.autocrlf
为 true (参见git-config)。
这不是 GIT 的问题,而是最初创建/上传和存储文件的方式的问题。最好的解决方案是找到一个允许您将行尾类型设置为 unix 的编辑器。
这似乎有一种方法可以在 Windows 端使用 GIT,但我认为这通常是一种不好的方法
http://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/