2016-07-02 3 views
0

私はgitを使ってプロジェクトを管理しています。通常、私は週に機能して、次のような非常に小さなコミットを行います。原子コミットベストプラクティス

  • いくつかのエンティティクラスのスタブを実装します。
  • エンティティのリポジトリサービスを追加します。
  • エンティティ保存のテストを追加します。
  • エンティティリストのUIを実装します。
  • ...

これらのコミットはそれぞれ、(〜20-50行)非常に小さいですが、彼らはお互いに依存しています。各コミットによって、システム全体が確実に機能します。

逆のアプローチとして、〜500 + linesの "Implement feature X"に対して1つのコミットを作成することができました。

質問はベストプラクティスは何ですか?どのアプローチがアトミックであるか?

PS。 私はコミットする方法を知っています。私が求めているのはPHILOSOPHYの部分です。

+0

サイドブランチで小さなコミットを行うことはできません。早送りではできませんが、「実装機能X」を導入するよりもコミットしてください。 – PetSerAl

答えて

1

4つのコミットを例に挙げると、それらはすべて同じタスクに関連していても、コミットが異なることは全く合理的です。

小さいコミットは常に長いものよりも優れています。しかし、あなたは「どのくらい小さいか」という質問をすることができます

このコミットで行ったことを短い文章で説明できる場合は、意味があります。コミットしてください。

+0

さらに、単純な文でコミットを記述できない場合は、おそらく複数のコミットに分割する必要があります – everton

1

小さなコミットがベストプラクティスです。どの変更がバグを導入したのかを簡単に確認できます。作業をまとめてマージする必要があるチームで作業する方が簡単です。

これは、使用するリビジョン管理システムに依存しません。

EDIT:

もう一つの利点は、あなたが構築し、インクリメンタルにあなたのソフトウェアをコミットするように、あなたは大胆に何かが動作しない場合、それはに戻って得るために迅速にリセットだことを知って、次のステップに何かを試すことができるということですこれまでのすべてが機能していた最後のステップ。

0

できるだけ多くの場合、コミットを「1つの論理作業ユニット」と表現してみてください。これにより、gitの履歴をより簡単に理解することができます。

+0

私は "すべての機能を備えた新しいバージョンを実装する"のようなコミットを避けようとしています。しかし私は同意しました。大きなコミットは、コミットの歴史をより明確にします。問題はどのように境界線を定義するか、どちらの方が良いかということです。だから私が尋ねるのは、 – abguy