如何将换行(LF)提交/推送到git存储库

时间:2019-04-16 15:46:18

标签: git

我的git储存库中有一个文件,其中“ CRLF”作为行尾。当我在notepad ++中单击“显示所有字符”时,它将在每行显示“ CRLF”。该文件被跟踪为1,内容如下。

{
"Inputs": {
     "General": [
           {
              "name": "test",
              "ID": "b"
           }]
         }
}

我已使用记事本++中的replace选项将每行的“ CRLF”端替换为“ LF”。

当我提交此更改时,它发出如下错误。

  

什么也没提交,工作树很干净

     

git没有干净退出(退出代码1)

如何在git中提交此更改。

2 个答案:

答案 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 LineTim Clem,以及gitattributesgit-config的手册页。