提问人:tribbloid 提问时间:11/17/2023 最后编辑:tribbloid 更新时间:11/17/2023 访问量:39
'git add --renormalize .' 什么都不做,如何解决?
`git add --renormalize .` doesn't do a thing, how to fix it?
问:
我有以下定义:.gitattributes
*.sh text eol=lf
* text eol=crlf
如果 git 工作正常,它应该重新格式化当前目录下的所有文件,以用作唯一的行尾。*.sh
lf
不幸的是,运行后,什么也没发生。git add --renormalize .
怎么会这样呢?这个功能的 git 实现有问题吗?如果不是,要执行的正确命令是什么?.gitattributes
答:
1赞
LeGEC
11/17/2023
#1
在测试存储库中使用文件时,每次添加新文件时都会收到重复的警告:.gitattributes
* is not a valid attribute name: .gitattributes:3
*
指的是你最后一行的第二行,当我将那行更改为 时,正确地保存在文件中并将我的 变成 在其他文件中(我在 linux 上运行,用*
* text eol=crlf
git
lf
.sh
lf
crlf
git version 2.42.0
)
我认为你的不适用,因为它的内容无效。.gitattributes
也许错误消息在您的案例中没有显示 - 例如,GUI 客户端有时会隐藏警告消息--,或者旧版本的 git 没有明确警告那么多事情。
我不认为说“一切都是文本文件”是一个很好的解决方法:它会弄乱你的二进制文件,并且 tru 将 (=) 变成 (=)。\10
lf
\13\10
crlf
你应该选择一个更明确的列表来考虑作为文本文件,或者完全删除最后一行并依赖 git 的默认行为。
如果您别有用心地绝对提交其中的文件,请更详细地解释您的要求。crlf
评论
0赞
tribbloid
11/17/2023
非常感谢,不幸的是它在 Windows 下不起作用,“sh”文件仍然随处可见 CRLF
0赞
tribbloid
11/17/2023
啊,这可能是有道理的,让我验证一下
0赞
tribbloid
11/17/2023
现在设置为“core.autocrlf=input”,这或 null 应该是默认值
1赞
LeGEC
11/22/2023
git config --show-origin core.autocrlf
将显示设置来自哪个文件
评论
gitattributes
* is not a valid attribute name: .gitattributes:3
*
*
git version