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