我对 .gitattributes 行为感到困惑。
在有关规范化行尾的文章之后,我完成了以下步骤:
- 创建 .gitattiributes
* text=auto
- 在我的开发 Windows 机器上,我有
core.autocrlf = true
- 在我的构建 Linux 机器上,我有
core.autocrlf = input
- 我在运行的开发机器上执行了行尾规范化
git rm --cached -r . && git reset --hard && git add . && git commit -m "normalized" && git push develop origin/develop
。
根据我的想法,最后一步应该最终将所有带有 LF 结尾的文本文件推送到存储库,并且从那一刻起,我所有的提交和 chechout 都不会受到任何平台上的行尾冲突的困扰。
但是,当我在我的构建 Linux机器上克隆了 repo 时,我立即得到了一堆标记为已更改的文件。如果在构建机器上的工作副本中我将 .gitattributes 行更改为# * text=auto
(注释),一切都会好起来的。
为什么会这样,我做错了什么?