2010-02-24 22 views
1

我正在对抗工具并​​失去。我希望我的每个文本文件和每个开发人员的项目都是UTF-8和CRLF。 1)我该如何配置git? 2)我如何与所有开发人员共享这个git设置,以便没有人可以忘记配置它?git CRLF和编码

我读了一些关于core.autocrlf和safecrlf的内容,但是我不明白它与我的问题有什么关系。

谢谢大家。

+1

你为什么想这样做?版本控制系统的最大特点之一是让不同平台上的人员(不同的行结尾)可以一起工作。 UTF-8部分似乎是合理的。 – 2010-02-24 17:45:56

+0

,因为我想要标准工具(我们试图做敏捷的东西)。我有新生同事,所以我决定为他们。而且,我们可以在标准化工作后立即尝试定制。目前,没有任何工作,我看到在线路结局的承诺战斗。而我自己作为主要开发人员,我不知道如何配置一切。 – nraynaud 2010-02-25 09:11:22

回答

0

您可以编写一个pre-commit hook,检查是否存在CRLF,其中每个人(以及特别是集成者)都将其置于其.git/hooks/目录中。例如,检查树的! grep -qPrI '[^\r]$' .(如果你的grep支持-P)(注意:我没有真的测试该表达式)。同样的道理,你也可以编写一个钩子检查所有文件是否为有效的UTF-8。

这就是说,我认为core.autocrlf(见git-config)听起来更像是CRLF问题的解决方案;通过这种方式,存储库中的所有文件都将具有LF,并且具有生成CRLF的工具的任何人都不会弄乱事情。在编码方面,避免非ASCII,或者如果这不可行,请确保每个人的工具都配置为UTF-8。

规则检查的最重要的点(如行结束和编码)是集成器(也就是每个人都克隆的)。如果集成商拒绝合并提交会破坏行尾的提交等,则可以避免大部分干扰(尽管贡献者显然仍需要设置他们的工具)。

我该如何与所有开发人员共享这个git设置,以便没有人能够忘记配置它?

您可以分发您的.git/config~/.gitconfig(或其中的相关条目)。我不认为可以通过git clone自动分配设置。