【发布时间】:2019-08-05 01:08:27
【问题描述】:
几天前,我不小心更改了某个文件的行尾,并提交了更改。 (以前是 CRLF,现在是错误的 LF。)我仍然不知道这是我的编辑器太聪明了,还是 git 太聪明了。 (实际上我怀疑它是 git,根据我试图撤消它的经验。)不管怎样,它已经完成了,我想修复它。我想我可以在我的编辑器中更改行尾,然后只更改行尾进行提交。 Git 拒绝了,声称我没有改变任何东西。所以我也添加了一个虚拟更改,但它随后提交了虚拟更改,但也改变了行尾,所以它们仍然是 LF。可能相关的 git 设置:
C:\Users\ZKZ4PL2\eqs\hot-connect>git config core.eol
C:\Users\ZKZ4PL2\eqs\hot-connect>git config core.autocrlf
input
有什么想法吗?
【问题讨论】:
-
可能,但不明显。现在最困扰我的是git没有按照我的预期做,这意味着我比我想象的更困惑。由于 autocrlf 设置为
input然后根据 git 文档“此变量可以设置为 input,在这种情况下不执行输出转换”。那到底是怎么回事? -
最好(我的意见!)将 autocrlf=false safecrlf=true 和所有相关的文本文件(例如 *.c)明确地保存在 gitattributes 中。 See虽然一旦你有一个搞砸的回购它更麻烦
-
git 开发者自己 discussing autocrlf 坏了。
-
@MarkVY 还有these commands搞乱后清理
标签: git line-endings