提交到GIT之前的代码格式

时间:2016-10-05 12:32:53

标签: git bitbucket code-formatting

根据我的理解,当两个开发人员在同一个项目上工作,但使用不同的编码风格时,GIT中没有内置的方法来统一提交的源。如果我错了,请纠正我。

我应该要求所有开发人员使用相同的样式格式化代码吗?

我可以要求GIT以某种方式根据相同的样式格式化代码吗?是否可以使用BitBucket实现自动代码格式?

4 个答案:

答案 0 :(得分:4)

  

我应该要求所有开发人员使用相同的样式格式化代码吗?

是的,这是一个好主意。

项目通常有编码风格指南,以减少出现问题的可能性。这些可以从非常宽松到非常严格。指南包括但不限于布局和格式。

我与之合作的大多数开发人员都非常乐意采用手头项目的风格,即使这不是他们的个人风格。这是为了更大的利益。它有助于提高可读性并减少“格式化修复”与实际更改混合的可能性。如果我正在编辑没有指定样式指南的代码,我会尽量遵守现有的样式。

开发人员可以做的最糟糕的事情是在提交之前通过自己的布局规则通过自动格式化程序运行整个源文件。这可能会导致与他们正在进行的工作实际上并不相关的地方发生彻底变化,并且当您在多个分支机构工作时,总会导致痛苦的合并冲突。

  

我可以要求GIT以某种方式根据相同的样式格式化代码吗?是否可以使用BitBucket实现自动代码格式?

我将通过质疑您为什么要这样做来回答这个问题。请注意具有自动格式化的提交钩子或基于“不正确”样式拒绝提交。

这就是代码审查的用途,并且在代码中总会有例外,人类会更好地做到这一点(例如,在C ++领域,clang-format大部分做得很好,但几乎涉及到非琐碎的初始化列表)。迫使每个人都接受机器的解释可能只是妨碍了。

答案 1 :(得分:1)

据我所知,BitBucket没有这个功能。

但我认为找到一种共同的风格是个好主意,以便提供快速的选择。

为此,如果可以的话,使用具有集成格式化功能的IDE并共享设置有时会很有用。 我认为Eclipse是一个很好的解决方案,因为支持很多语言。

在我的团队案例中,我们使用的是MS Visual Studio和Allmann Style,因为它自动支持本机支持。

答案 2 :(得分:1)

您可以在每台开发人员计算机上安装预提交 - the understanding并运行您选择的linter,以防止开发人员在源代码与团队标准不匹配时提交。

缺点是开发人员只需不在本地安装钩子就可以超越这种机制。

另外,linter应该作为构建过程的一部分运行,如果代码格式不正确,则构建失败。

答案 3 :(得分:1)

我是否应该请所有开发人员以相同的样式设置代码格式?

是的,也许有几种工具可以帮助您解决这一问题。

Som编辑器和环境支持一种名为.editorconfig的文件格式,您可以在其中指定编码样式。例如制表符或空格,如果有空格,则一个代码缩进多少空格。 https://editorconfig.org/

我在it works very well的Visual Studio中使用它。其他环境或编辑器可能会要求您在支持插件之前添加插件(例如可视代码),或者在项目中使用自己的方式定义代码样式。

我可以要求GIT以某种相同的方式格式化代码吗?可以使用BitBucket实现自动代码格式吗?

如果您想强制执行一种代码样式,而不是仅仅同意它(.editorconfig),那么您可能希望研究git hooks。

我个人没有任何经验,但是给出的例子之一是“强制执行项目编码标准”。所以您可能需要研究一下。

https://githooks.com/