重要なウェブサイトのメンテナンスに使用します。私は唯一の開発者ですが、マスター、開発、および発行ブランチを持っています。
サイトセットアップの私の作業プロセスは次のようになります。
実行可能なマスターブランチを作成します。最初のコミットを行います。
Checkout開発ブランチ。何もせずに、マスターにマージするためのテストバッファーとして機能を開発します。
チェックアウト問題ブランチ。問題をコーディングし、完了したら開発に引き込み、問題が発生するかどうかを確認し、競合をマージするなどして修正します。
十分な問題がリリースの開発にマージされ、開発の安定性がテストされたら、開発をマスターにプルします。
Master
|
Develop - E
/ | \ \
A B C D
そうすることで、開発中に完全なテストコレクションを取得し、Masterを傷つけたり、有害なコミットをロールバックしたりすることなく、安定性、問題などをテストできます。
また、コミットのために個々のブランチを使用することにより、すでに行った作業を「残す」ことができ、より緊急の問題を修正するために他の何かを新たに開始し、それをより早く展開できます。
実際には、私は通常1つの問題ブランチを持ち、それを開発してからマスターにします。面倒なこともありますが、RightNow™を作成する必要があると誰かが考えていたので、少なくとも2か月に1回は帽子を落とさなければなりません。そしてその後、私がいた場所に進みます。特に、数週間かかる大規模なプロジェクトでは、これはすぐにブランチを切り替えることができるという神聖なものです。
このシナリオを考えてみてください。あなたは常にメインブランチで作業し、AwesomeCodeThing™を使用してマスターブランチを心臓切開手術に残します
。そのようなシナリオで問題を迅速に解決する唯一の方法、
- 以前のコミットを確認し、
- 最後の安定したコミットがいつだったかを確認します(cursingはオプション)
- そのコミットにロールバックする
- 修正を行い、修正を本番にプッシュ
- AwesomeCodeThing™ステータスに戻ろうとしているすべての競合と問題を解決します
- あきらめ、泣き、やり直します。(オプション)
ブランチを使用する場合:
- チェックアウトマスター
- ブランチUrgentFix™を作成して修正します
- UrgentFix™をマスターに引き込む
- 生産にプッシュ
- マスターを開発にマージ
- AwesomeCodeThing™へのマージ開発
- ビールを飲んで働き続けます。