0

我对 .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(注释),一切都会好起来的。

为什么会这样,我做错了什么?

4

1 回答 1

0

嗯,您似乎必须对混合的命令进行排序:“git reset --hard”应该排在最后,否则,我看不到 git add 实际上会向索引中添加任何内容......

于 2013-12-23T14:11:26.920 回答