1

私は git を使用したブランチ管理の細かい点をいくつか調べており、この記事に基づいていくつかの決定を下していました。

http://nvie.com/posts/a-successful-git-branching-model/

ここで、オリジンにリモートでmasterdevelopment_branch. すべての開発者に関する限りdevelopment_branch、クローン元の主要な場所であり、安定したリリースがある場合にのみ、開発からマスターにマージします。

それを念頭に置いて、各スプリントを通過する必要があるストーリーがたくさんあるので、現在行っていることは、クローンdevelopment_branchを作成してから、取り組んでいるストーリー/機能の新しいブランチを作成することproduct_description_featureです。その後、このローカル ブランチが処理されるため、別のタスクを取得したり、何らかの修正を行う必要がある場合は、クリーンdevelopment_branchに戻り、そこからブランチすることができます。

ここで、このように動作するプロセスについて質問があります。現在、安全なオプションは次のプロセスのようです。

  • クローンdevelopment_branch
  • タスクの新しいブランチを作成します (feature_aこの例ではそれを呼び出します)
  • feature_aタスクが完了するまでブランチにコミットする
  • ローカルに切り替えるdevelopment_branch
  • 新しい変更を原点から引き下げます(通常はとにかく頻繁に行われます)
  • feature_aからへの変更をマージ development_branch
  • development_branchローカルをオリジンにプッシュ
  • 次のタスクのために新しいブランチを作成する

これで問題なく動作し、誰もが満足していますが、より定期的にプルしたい次のシナリオを考えてみましょう:

  • クローンdevelopment_branch
  • タスクの新しいブランチを作成します (feature_bこの例ではそれを呼び出します)
  • feature_bブランチにコミット
  • ブロッカーに気づき、最新の変更をプルする必要があります
  • 切り替えるdevelopment_branch
  • development_branchオリジンをローカルにプル
  • 切り替えるfeature_b
  • development_branchローカルからマージfeature_b
  • 完了するまで作業を続ける

これで安全で、誰もが満足しているように見えますが、切り替えてプルダウンし、切り替えてローカル機能ブランチにマージする必要があるかどうかはわかりません。development_branchだから私はここで過度に用心深いだけで、development_branchオリジンからローカルfeature_bブランチに引っ張るべきですか?

local を更新せずに変更を直接ローカルの機能ブランチに取り込むだけなので、これで問題ないようです。development_branch変更をプッシュする必要がある場合は、もう一度切り替え、プル、マージ、プッシュします。

それで、誰かがこれが良い習慣であるかどうかなどを確認できますか?

また、質問をあまり汚しませんが、これらの機能ブランチは各開発者のマシンにのみ存在するため、誰かがタスクを半分実行してから、他の誰かがそれを拾う必要がある場合はどうなりますか? そのブランチをオリジンにプッシュして、それを降ろしてから作業させることができますが、その後、さらにクリーンアップする必要があるため、この問題を解決する良い方法はないと思いますが、その方法を聞いてみたいと思います.他の人は、古い機能ブランチの荒れ地をリモートで作成することなく、問題を解決します。


他にもいくつか言及する必要があります。現在、ffwd マージを行っているところです。元の記事では、ffwd マージではないことについて言及していますが、膨大な量のリモート ブランチを作成せずにこれを行う方法がわかりません。コマンドラインではなく Tortoise GIT を使用していますが、実際には何も変わりません。

4

1 に答える 1