我正在掌握一个开发团队,每个人都使用Eclipse和相同的格式设置.
现在,一些开发人员有理由切换到其他IDE,这些IDE以不同的方式格式化源代码.因此,当他们现在推向git origin repo时,git会注意到很多外观差异.不幸的是,对于一些开发人员而言,这是一个很大的问题.
有没有办法获取git - 也许通过使用钩子 - 重新格式化推送或最好提交所有内容,所以repo中的代码始终独立格式化IDE?
我假设我们不是git-history中第一个遇到这个问题的团队,所以我希望有一个预制解决方案或至少一些最佳实践.
可靠地执行此操作的唯一方法是在服务器端(出于安全原因,在克隆期间不会自动设置客户端挂钩,因此如果您在客户端按照其中一条注释中的建议执行此操作,则每个开发人员都必须手动执行此操作设置一次钩子).
在理论上,你可以操纵收到的更新......但这是一件相当复杂的事情.但实际问题是,一旦完成,你在本地拥有自己的,未经修改的提交,并且在服务器上有修改的提交 - 这就是要求麻烦.如果你现在要进行拉/合并,git会将未触及的历史记录与修改后的历史记录结合起来,然后突然你完成所有提交两次.
如果您想确保只有格式正确的代码最终存储在存储库中,那么如果您拒绝格式错误的代码,则会更容易并且会导致更少的问题.当然,这在实践中可能相当烦人,但这是你必须做出的权衡取舍.
假设您可以让您的开发人员执行本地钩子设置操作,那么本地预提交钩子几乎肯定会更容易编写并且在实践中减少麻烦 - 但它可以通过各种方式绕过,因此没有铁定的保证.