为什么git拒绝以unix风格的行结尾提交



Git拒绝去掉windows样式的行尾,而用unix样式的行尾提交。

在任何人说要设置我的配置文件之前…我已经运行了这两个命令,并验证了它们在我的配置中正确地放置了设置:

git config --global core.autocrlf true
git config core.autocrlf true

奇怪的是…如果我使用git init创建一个新的repo,然后从我试图使用windows行结尾的repo中复制一个文件到新的repo,当我在新repo中提交时,它就会工作!

当我运行:

git add .

git通常告诉我:

warning: CRLF will be replaced by LF in fileWithWindowsLineEndings.txt.
The file will have its original line endings in your working directory.

但是这不会发生在我试图使用的一个repo上。如果我签出的文件可能来自带有windows行结尾的repo,这有关系吗?我猜是我的团队中有人没有正确设置git配置,提交并推送了windows行结束符。

任何想法?

谢谢。

我刚试过;如果您添加一个没有设置core.autocrlf的文件,它将不会在以后转换该文件,即使当时设置了core.autocrlf。你必须从Git的repo中删除这些文件,然后重新添加。

注释后编辑:

您可以使用.gitattributes文件解决这个问题:https://help.github.com/articles/dealing-with-line-endings

最新更新