それはあなたが取り組んでいるブランチ(「開発ライン」)の性質に依存します。
これらのDVCS(gitまたはmercurial)の主な利点は、次のことができることです。
それで:
1 /どのくらいの頻度でいつコミットしますか?
2 /変更が正しくビルドされた場合にのみ変更をコミットしますか?
プライベートブランチで必要な回数(たとえば、コンパイルする場合)。
単体テストに合格した場合にのみコミットする方法は適切ですが、「公式」(「公開または「プッシュ」可能」など)ブランチにのみ適用する必要があります。プライベートブランチでは、次の場合にガジロン時間をマージします。する必要があります。
唯一のことは、いくつかのテストに合格できるメインの開発ブランチでそれらを再生する前に、いくつかのマージ--interactiveを実行して、プライベートブランチで多くのコミットを再編成することです。
3 /変更をプッシュする(またはプルリクエストなどを提出する)頻度と時期は?
公開は別の問題であり、「明確な」履歴(コヒーレントなマージ、コンパイルしていくつかのテストに合格するコンテンツを表す)を使用して実行する必要があります。
公開するブランチは、履歴が決して書き換えられず、常に更新されるブランチである必要があります。
出版物のペースは、遠隔地の支部の性質とその支部を引っ張っている人口の性質によって異なります。たとえば、別のチームの場合は、かなり頻繁にプッシュできます。システム全体の統合テストチームの場合は、プッシュする頻度が大幅に少なくなります。
4 /複雑な機能の開発/多くの場所に触れる必要のある複雑なリファクタリングの実行にどのようにアプローチしますか?ビルドされない「プライベートコミット」は問題ありませんか?終了したら、それらをマスターリポジトリにもプッシュしますか、それともプッシュする前にすべての変更を1つのチェンジセットにバンドルしますか?
1.および2を参照してください。最初に独自のプライベートブランチでパッチを適用してから、公式の(公開された)パッチブランチでコミットを再編成します。パッチに複数の異なる「アクティビティ」(またはバグ修正)が含まれている場合、1つのコミットが常に最良のオプションであるとは限りません。