7

我正在管理一个开发团队,每个人都使用 Eclipse 和相同的格式设置。

现在一些开发人员有理由切换到其他 IDE,这些 IDE 的源代码格式不同。因此,当他们现在推送到 git origin 存储库时,git 会注意到很多外观差异。不幸的是,对于一些开发人员来说,这是一个大问题。

有没有办法让 git - 也许通过使用钩子 - 重新格式化推送或最好提交的所有内容,所以 repo 中的代码总是独立格式化 IDE?

我假设我们不是 git-history 中第一个遇到这个问题的团队,所以我希望有一个预制解决方案或至少一些最佳实践。

4

1 回答 1

5

可靠地做到这一点的唯一方法是在服务器端(出于安全原因,在克隆期间不会自动设置客户端挂钩,因此如果您按照其中一条评论中的建议在客户端执行此操作,则每个开发人员都必须手动设置该钩子一次)。

理论上,您可以在那里操纵收到的更新……但这是一件相当复杂的事情。但是,实际的问题是,一旦完成,您在本地就有自己的、未触及的提交,并且在服务器上有修改过的提交——这是自找麻烦。如果您现在要进行拉取/合并,git 会将未修改的历史记录与修改的历史记录结合起来,突然间您将所有提交都两次。

如果您想确保只有格式正确的代码最终出现在存储库中,那么如果您拒绝格式不正确的代码,它会更容易并且导致的问题更少。当然,这在实践中可能相当烦人,但这是您必须做出的权衡。

假设您可以让您的开发人员进行本地挂钩设置,那么本地预提交挂钩几乎肯定会更容易编写并且在实践中减少麻烦 - 但它可以通过各种方式绕过,所以没有铁定的保证.

于 2013-03-21T13:04:43.323 回答