git add
添加了一些文件。我收到了警告信息:
这种转换会有什么影响?LF将被替换为CRLF
git add
添加了一些文件。我收到了警告信息:
这种转换会有什么影响?LF将被替换为CRLF
* text=auto
,将防止Git在首次检查行尾。false
,即使这个选项没有被移除设置autocrlf为false也不会有太大的帮助,所以这个选项对我有帮助(但仅此一项还不够)。 - Matty.gitattributes
中text=
设置的答案(如果存在,将会是一个阻塞器)。因此其他答案是不完整的。我疯了似地试图弄清楚为什么无论我如何更改我的autocrlf
和safecrlf
设置并检出和清除git缓存和硬重置,我的文件都继续显示为“修改”。 - jdunkhttp://www.rtuin.nl/2013/02/how-to-make-git-ignore-different-line-endings/(无法访问)
您可以通过更改.gitattributes文件中的条目来完全禁用CRLF行为,或按文件类型进行更改。在我的情况下,我放了这个:
- -crlf 这告诉Git忽略所有文件的行结束标记,并且不更改工作目录中的文件。即使您已将core.autocrlf设置为true、false或input。
echo "* -crlf" > .gitattributes
如果您进行单独提交,Git 就不会因为您做了一次更改而将整个文件视为修改(这取决于您是否更改了 autocrlf 选项)。
这样做确实有效。Git 将尊重混合行尾项目中的行尾,并且不会向您发出警告。
*.sh -crlf
... - MartinTeeVargagit rm --cached -r .
和git reset --hard
,适用于项目中的每个人。 - philk我对Windows上的Git不是很了解,但是...
在我看来,Git会将返回格式转换为与运行平台(Windows)匹配。CRLF是Windows的默认返回格式,而LF是大多数其他操作系统的默认返回格式。
当代码移动到另一个系统时,返回格式很可能会被正确调整。我认为Git足够聪明,能够保持二进制文件的完整性,而不是尝试在JPEG文件中将LF转换为CRLF。
总之,你可能不需要过于担心这个转换。但是,如果您要将项目存档为tarball,其他程序员可能会更喜欢LF行终止符而不是CRLF。根据您的关注程度(以及您不使用Notepad),您可能希望设置Git使用LF返回,如果可以的话 :)
附录:CR是ASCII码13,LF是ASCII码10。因此,CRLF是两个字节,而LF是一个字节。
我按照之前的答案执行了git config core.autocrlf false
,但在使用Git(版本2.7.1)时它没有起作用。
然后当我升级Git(从2.7.1到2.20.1)时,它现在可以工作了。
其他答案对于一般概念已经很好了。我遇到了一个问题,在更新后,现有存储库仍会出现警告,因为之前的提交中存在问题。
使用 --renormalize 添加可以解决问题,例如:
git add --renormalize .
来自文档:
"强制重新将所有跟踪文件新鲜“清理”处理,并将它们再次添加到索引中。这在更改core.autocrlf配置或文本属性以纠正错误的CRLF / LF行结尾添加的文件之后非常有用。此选项意味着-u。"
我经历了相同的错误。 这是在Windows 10上安装NVM NVM后发生的。
在所有级别中设置autoclrf无效。
在CMD中我使用了: "git ls-files --eol"
i/lf w/crlf attr/ src/components/quotes/ExQuoteForm.js
i/lf w/lf attr/ src/components/quotes/HighlightedQuote.js
结论:
我创建的文件有不同的后缀。
要更改这些文件并重置,请执行以下操作:
git config core.autocrlf false
git rm --cached -r .
git reset --hard
尽管如此:
在一些项目中,我需要删除仓库并重新开始。
git config --global core.autocrlf false
命令,防止 Git 在提交时将行结尾设置为 Unix
。接着使用 git config core.autocrlf
命令进行检查,确保其已经被设置为 false。 - Contango这个问题与Windows相关,而且我不能使用其他方法而不进入目录甚至在Notepad++中以管理员身份运行文件也行不通......
所以必须采用以下方式:
cd "C:\Program Files (x86)\Git\etc"
git config --global core.autocrlf false