根据用例正确设置git autocrlf

我正在寻找适用于某些用例的适当设置,但找不到任何描述相同的来源。 因此,我问这个问题是为任何寻找git autocrlf选项的正确设置的人提供的解决方案。

用例1:我在Mac上,其他开发人员都在Windows上。 他们在加入之前正在管理源代码。

用例2:我在Windows上,其他开发人员都在Mac上。 他们在加入之前正在管理源代码。

使用案例3:我在Linux上,其他开发人员都在Windows上。 他们在加入之前正在管理源代码。

使用案例4:我在Windows上,其他开发人员都在Linux上。 他们在加入之前正在管理源代码。

使用案例5:我在Linux上,其他开发人员都在Mac上。 他们在加入之前正在管理源代码。

使用案例6:我在Mac上,其他开发人员都在Linux上。 他们在加入之前正在管理源代码。

我应该使用什么设置的git core.autocrlf?

编辑: 为什么这个问题是不是重复许多类似的问题:

所有其他问题和他们的答案提供了所需的事实和知识,使读者有很多工作要做。 这个问题旨在针对具体情况提出具体的答案。


简单:

 git config core.autocrlf false

(对于所有情况和任何情况)

core.autocrlf是一个配置,这意味着它不会被repo压入或克隆:它必须由用户设置。

这是处理回购协议水平的传统方式。

你想使用什么(添加或修改取决于你的场景)是gitattributes core.eol指令。

  • .gitattributes是一个可以像git其他文件一样在git repo中管理的文件。 一旦您同意采用eol政策,该政策将在每个克隆实施。
  • 你可以为一个文件或一组文件设置core.eol指令(如果你想的话)(相对于全局资源库范围配置core.autocrlf
  • 对于异构环境,core.eol(仅适用于您认为有问题的文件)应该是native (如果您怀疑编辑器坚持使用系统eol而不是使用文件中已存在的文件)。

    有关更多信息,请参阅“关注线路的末端 ”。


    不要担心core.autocrlf ; 在根目录中添加一个.gitattributes文件,并将以下行放入:

    * text=auto
    

    这将导致git在提交时自动将所有行结束符转换为LF,并且(对于Windows机器)在结帐时将行结束符转换为CRLF。

    请注意,对于现有开发人员在Windows中的用例1和3,将此行添加到.gitattributes可能会使您看起来像突然间有大量更改要提交。 这是因为你的仓库中有很多CRLF文件,而git知道它必须将它们全部转换为LF。 尽管看起来没有真正改变,但继续并提交这些更改。

    还有一点需要注意的是,如果每个人都在同一个操作系统上,那么我甚至都不会在转换行结束时混淆; 在这种情况下,将* -text .gitattributes文件中,以避免发生转换。

    链接地址: http://www.djcxy.com/p/31775.html

    上一篇: Correct setting for git autocrlf as per use case

    下一篇: Kafka to zookeeper command produces error