我希望能够使用Github for Windows应用程序以及使用Cygwin(在Windows上)命令行中的git来处理我的git项目。
但是当我从一个切换到另一个时,我继续遇到线路结尾的问题。
如果使用命令行工具repo没有更改,它将希望使用Github应用程序修改所有文件。如果我使用Github应用程序进行更改,那么它将再次使用命令行工具进行更改。
经过大量的测试后,我无法使这两种工具都能正常工作。
什么能让它发挥作用?在我目前设置的.gitatributes中: * text = auto 但它没有帮助
答案 0 :(得分:5)
当您的存储库配置与存储库中的数据不一致时,会出现GHfW错误。
如果您将文件配置为转换为CRLF行结尾 - 例如,将core.autocrlf
设置为true
,但您的存储库中的blob已经是CRLF格式(可能是因为某人)尚未将core.autocrlf
设置为true,则可能会出现此问题。
在这种情况下,GHfW以不同于msysgit的方式翻译存储库中的CRLF。结果,一些或所有文件显得很脏。
我建议您在整个团队中使用一致的CRLF方法,以避免git工具对于他们应该对您的行结尾做什么感到不明确。也就是说,这个bug最近在libgit2中修复了,这个库是GHfW的基础,并且应该很快进入GHfW。
答案 1 :(得分:4)
在Windows中使用Git Bash和Cygwin会让git混淆。那就是:
CRLF
来检出文本文件。CRLF
时,它认为LF
被修改为CRLF
,以便git报告大量文件更改。解决此问题的一种方法是在repo的root中创建.gitattributes
文件
添加如下行:
*.txt text eol=lf
当遇到带有后缀.txt
的文件时使用LF
时告诉git
写入“数据库(.git)”并签出工作目录。
答案 2 :(得分:1)
我使用GitHub 2.7.0.24在我的Windows上克隆了一个存储库(带有CRLF的文件)。 然后我想使用我的cygwin的git版本2.1.4。
我通过添加" autocrlf = true"编辑了.git / config。在[核心]部分下。 (在&#34之前有一个真正的制表; autocrlf = true")
现在,cygwin的git说我没有修改我最新的。
我将CRLF保留在文件上,因为它们是在原始存储库中以这种方式创建的。
我将不再使用GitHub应用程序......
我注意到合并冲突正在添加<<<< ====>>>>没有CR的行,但是当我解决冲突时它们将被删除。