我们有一个集中的git存储库,它只有一个Windows项目。所以我们希望autocrlf是假的。
但是,有人也在跨平台项目上工作并设置
git config --global core.autocrlf true
如果他们忘记更改此Windows git存储库的设置,那么他们会将unix结束文件提交给它,这是我们不期望的。
所以我想要的是: 无论如何设置“git config --global core.autocrlf”,autocrlf在克隆该repo时总是为false,不需要额外的步骤来设置它。
我知道我们可以为本地存储设置core.autocrlf,但是如何为远程存储库完成它?
答案 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以获取示例解决方案(反之亦然)