3 回答
TA贡献1783条经验 获得超4个赞
GitHub建议您确保在git处理的存储库中仅使用\ n作为换行符。有一个自动转换选项:
$ git config --global core.autocrlf true
当然,据说这是将crlf转换为lf,而您想将crlf转换为lf。我希望这仍然有效...
然后转换文件:
# Remove everything from the index
$ git rm --cached -r .
# Re-add all the deleted files to the index
# You should get lots of messages like: "warning: CRLF will be replaced by LF in <file>."
$ git diff --cached --name-only -z | xargs -0 git add
# Commit
$ git commit -m "Fix CRLF"
手册页中介绍了 core.autocrlf 。
TA贡献1851条经验 获得超5个赞
在Windows上进行开发时,使用时遇到了这个问题git tfs
。我是这样解决的:
git config --global core.whitespace cr-at-eol
这基本上告诉Git行尾CR并不是错误。其结果是,那些烦人的^M
字符不再出现在线路末端git diff
,git show
等等。
似乎保留了其他设置。例如,行尾的多余空格仍会在差异中显示为错误(以红色突出显示)。
(其他答案都暗示了这一点,但是以上正是设置设置的方法。要仅为一个项目设置设置,请省略--global
。)
编辑:
在经历了许多行尾麻烦之后,在.NET团队中工作时,我有以下设置是最幸运的:
没有core.eol设置
没有core.whitespace设置
没有core.autocrlf设置
当运行Windows的Git安装程序时,您将获得以下三个选项:
签出Windows风格,提交Unix风格的行结尾 <-选择这一行
按原样签出,提交Unix样式的行尾
按原样签出,按原样提交
如果需要使用空格设置,则可能需要在与TFS进行交互时仅在每个项目中启用它。只需省略--global
:
git config core.whitespace cr-at-eol
如果您需要删除一些core。*设置,最简单的方法是运行以下命令:
git config --global -e
这将在文本编辑器中打开全局.gitconfig文件,您可以轻松删除要删除的行。(或者,您也可以在它们前面加上“#”以将其注释掉。)
TA贡献1820条经验 获得超2个赞
另请参阅:
core.whitespace = cr-at-eol
或等效地,
[core]
whitespace = cr-at-eol
其中whitespace以制表符开头。
- 3 回答
- 0 关注
- 1878 浏览
添加回答
举报