core.autocrlf可以推送到远程存储库吗?

时间:2013-09-11 07:34:25

标签: git line-endings core.autocrlf

我们有一个集中的git存储库,它只有一个Windows项目。所以我们希望autocrlf是假的。

但是,有人也在跨平台项目上工作并设置

  

git config --global core.autocrlf true

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

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

我知道我们可以为本地存储设置core.autocrlf,但是如何为远程存储库完成它?

3 个答案:

答案 0 :(得分:2)

您可以添加并提交 .gitattributes file,其中eol=crlf为您需要拥有Windows EOL的类型的文件设置*.cs(例如*.*proj,{{1等等)。

或者可能只是设置

*       text=auto

在该文件中,在存储库中包含LF,以及用户在工作树中的任何愿望。

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

请参阅此GIT CRLF hook以获取示例解决方案(反之亦然)