我怎样才能让Git真正*忽略*行结尾?

Rya*_*ndy 23 git tfs line-endings git-tf

我怎么能告诉Git真的不关心行结尾?将它们保留为原来的LF或CRLF,并以同样的方式检查它们?

我正在使用带git-tf的Git存储库来检入TFS存储库.我团队的其他成员只使用TFS.

在这种情况下,有时他们会在不知情的情况下改变行结尾.例如,最近第三方工具将其行结尾标准化,以及其他变化.我们的repo已更新这些更改,现在由于不同的行结尾,文件显示在我的目录中有更改.

对于这个特定的存储库,我真正想要的是让Git假装行结束更改不存在.如果是LF,请将其保留为LF.如果是CRLF,请将其保留为CRLF.

为了做到这一点,我需要什么设置或设置组合?

rvd*_*ste 18

供将来参考:实现此目的最稳定的方法是使用在git存储库的根目录中提交的.gitattributes文件.

该文件应包含以下内容:

# no eol conversions!
* -text
Run Code Online (Sandbox Code Playgroud)

这意味着以下内容:

  • [*]:这是一个文件过滤器并匹配任何文件
  • [-text]:在办理登机手续和退房时不要尝试进行任何行尾转换

注意:使用"text = auto"意味着:在签出文件上使用本机行尾格式(对于看起来像文本的任何内容)并在内部将其存储为"LF".

这很强大,因为克隆存储库的每个人都将使用相同的设置.(使用core.autocrlf时不是这种情况.)

另请参阅gitattributes上的Git文档(效果:文本).

  • OMFG!为什么默认情况下我们没有TFS中的那个!非常感谢. (3认同)