我的git储存库中有一个文件,其中“ CRLF”作为行尾。当我在notepad ++中单击“显示所有字符”时,它将在每行显示“ CRLF”。该文件被跟踪为1,内容如下。
{
"Inputs": {
"General": [
{
"name": "test",
"ID": "b"
}]
}
}
我已使用记事本++中的replace选项将每行的“ CRLF”端替换为“ LF”。
当我提交此更改时,它发出如下错误。
什么也没提交,工作树很干净
git没有干净退出(退出代码1)
如何在git中提交此更改。
答案 0 :(得分:3)
请参见GitHub's article about dealing with line endings。
您的Git可能配置为将CRLF透明地转换为LF或相反。
答案 1 :(得分:2)
您似乎正在Windows上工作,其默认行结尾为CRLF。但是,Git是在Linux上开发的,其默认行尾为LF。在Windows上,默认情况下,提交文本文件时,默认将CRLF转换为LF;签出时,将其从LF转换回CRLF。没有任何更改要签入,因为存储库中的文件已经以LF作为行尾。
此行为由几个不同的配置参数控制,但是主要的是core.autocrlf
。在Linux上,该默认值为input
;在Windows上,默认值为true
。可以使用存储库中的.gitattributes
文件来调整行为(例如,指定应将哪些文件视为文本)。
请参阅:Dealing with line endings - GitHub Help,“ Mind the End of Your
Line”
Tim Clem,以及gitattributes
和git-config
的手册页。