我正在研究最初是在Unix环境中开发的项目。
这样的项目有一个.gitattributes文件,它强制eol = lf超过标准crlf-lf转换
*.sh text eol=lf
我的理解是告诉git“保持原始LF行的结尾”。
当克隆此存储库时,在完成提取后,如果我执行git status
,则某些文件已标记为已更改(特别是.sh文件)
git diff
显示
-FileContent
+FileContent
其中FileContent是文件中的所有文本。
我试图:
dos2unix
在单个文件上对这个问题没有影响。
我也尝试过:
od path/file.sh
显示文件的二进制版本(在设置上面的配置之前,实际上是文本)我如何使git尊重eol=of
文件的.sh
值?
Edit:通过rm .git/index
删除索引并执行git reset --hard HEAD
后,问题消失了
也(供参考):没尝试-core.autocrlf为false
关于eol转换:
[.gitattributes
指令] 1将在起作用)text eol=lf
git add --renormalize .
以强制应用.gitattributes指令。 (since Git 2.16,2018年第一季度)通过
rm .git/index
删除索引并执行git reset --hard HEAD
之后,问题消失了
这就是git add --renormalize .
应该模拟的。