2016-07-02 72 views
0

我正在使用git来管理项目。通常我会在一个星期内完成一项功能,并执行如下很小的提交:Atomic提交最佳实践

  • 为某个实体类实现存根;
  • 为实体添加存储库服务;
  • 添加测试以保存实体;
  • 为实体列表实现UI;
  • ...

每个提交的是非常小的(〜20-50行),但它们依赖彼此。每一次提交都能确保整个系统正常工作。

作为一种相反的方法,我可以为〜500 +行“实现特征X”创建单个提交。

问题是最佳做法是什么?提交哪个方法是原子的?

PS。 我知道如何挤压提交。我所要求的是哲学部分。

+0

你可以在side branch中做小提交,比你可以不做快进合并来引入“Implement feature X”commit。 – PetSerAl

回答

1

你举例说明了4个提交声音完全合理的不同提交,即使它们都与相同的任务有关。

较小的提交总是比较长的提交更好。但你可以质疑“多小”?我会使用以下的理念:

如果你可以描述你在这个提交中做了什么,在短句 它是有道理的,提交。

+0

另外,如果你不能用一个简单的句子来描述你的提交,那么它可能应该被分成几个提交 – everton

1

小提交是最佳实践。您可以更轻松地看到哪个更改引入了一个错误。与需要合并工作的团队合作更容易。

这与您使用的版本控制系统无关。

编辑:

另一个好处是,当你建立并逐步提交你的软件,你可以毫不畏惧地尝试在下一步的东西,知道当事情不工作这是一个快速复位,回到了最后一步到目前为止所有的工作。

0

尽你所能,尝试让给定的提交代表“一个逻辑工作单元”。这使得更容易理解git历史。

+0

我试图避免提交像“实现具有所有功能的新版本”。但我同意,大的承诺使承诺历史更清晰。问题是如何定义边界以及哪种方式更好。这就是为什么我问, – abguy