1

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

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

git config --global core.autocrlf true

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

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

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

4

3 回答 3

2

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

或者可能只是设置

*       text=auto

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

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

顺便说一句,.gitattributesMono 项目文件中的注释块对跨平台的 EOL 规范化问题特别有洞察力。

于 2013-09-11T10:04:47.520 回答
0

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

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

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

于 2013-09-11T08:11:36.490 回答
0

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

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

于 2013-09-11T10:17:11.830 回答