代码之家  ›  专栏  ›  技术社区  ›  Adam Luchjenbroers

Git-使用.gittattributes强制行结束时的奇怪之处

  •  1
  • Adam Luchjenbroers  · 技术社区  · 6 年前

    因此,我最近在我们的一个存储库中添加了一个.gittattributes文件,试图强制使用一致的行尾:

      # All Perl Sources should use Unix style line endings
      *.pl text eol=lf
      *.pm text eol=lf
    

    但是我自己和其他很多开发人员都遇到了很多“幻影更改”,git似乎会检测到文件“已更改”,即使没有更改。每行显示为添加,然后删除。

    我怀疑它对行尾感到困惑(从而检测每一行的变化),但奇怪的是:

    • 我无法重置文件(重置已完成,但该文件仍为未暂存的更改)
    • 更改受影响文本文件中的行尾不会影响它是否显示为已更改的文件。

    以前有没有人遇到过这种情况,有没有办法避免或解决这个问题?

    1 回复  |  直到 6 年前
        1
  •  2
  •   VonC    6 年前

    With Git 2.16 至少做一次:

    git add --renormalize .
    git commit -m "normalize eol files"
    git push
    

    然后尝试在别处复制你的回购,并检查一下 git status 表现如预期。

    确保你没有 core.autocrlf true .

    git config core.autocrlf
    

    test for your files eol style

    推荐文章