【问题标题】:Can core.autocrlf be pushed to remote repository?可以将 core.autocrlf 推送到远程存储库吗?
【发布时间】:2013-09-11 07:34:24
【问题描述】:

我们有一个集中的 git 存储库,其中有一个仅适用于 Windows 的项目。所以我们期望 autocrlf 为假。

但是,也有人从事跨平台项目和设置

git config --global core.autocrlf true

如果他们忘记更改此 windows git 存储库的设置,那么他们会将 unix 结尾文件提交给它,这不是我们所期望的。

所以我想要的是: 无论如何设置“git config --global core.autocrlf”,克隆该 repo 时 autocrlf 始终为 false,不需要额外的步骤来设置它。

我知道我们可以为本地仓库设置 core.autocrlf,但是如何为远程仓库设置呢?

【问题讨论】:

    标签: git line-endings core.autocrlf


    【解决方案1】:

    您可以添加并提交一个.gitattributes file,它将eol=crlf 设置为您需要Windows EOL 的文件类型(如*.cs*.*proj 等)。

    或者可能只是设置

    *       text=auto
    

    在该文件中拥有存储库中的 LF 以及您的用户希望在他们的工作树中的任何内容。

    确切的方法取决于您的存储库中已有的内容。

    顺便说一下,.gitattributes file from the Mono project 中的 cmets 块对跨不同平台的 EOL 标准化问题特别有洞察力。

    【讨论】:

      【解决方案2】:

      您可以确保您的用户将GIT_TEMPLATE_DIR 环境变量设置为“template directory”,其中您有一个模板 git 存储库。

      该模板将在克隆或初始化新存储库时使用,并且可以包含自定义模板配置文件。

      Global git hook”问题说明了如何使用模板机制来预配置 repo 的其他方面。

      【讨论】:

        【解决方案3】:

        您可以安装一个服务器端挂钩,检查行尾是否正确并集中拒绝/修复问题。

        请参阅此GIT CRLF hook 以获取示例解决方案(尽管反过来)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-12-05
          • 2013-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多