[解決済み] 小規模開発チームのためのGitブランチ戦略 [終了しました]。
質問
私たちは、ほぼ毎日更新してリリースしているウェブアプリがあります。私たちは VCS として git を使用しており、現在のブランチ戦略は非常にシンプルで破綻しています。master ブランチがあり、私たちが「良いと思った」変更をそこにチェックします。masterブランチがあり、私たちが「良いと思った」変更をそこにチェックします。これはうまくいきますが、壊れるような変更をチェックインするまでです。
のお気に入りの git ブランチ戦略をお持ちの方はいらっしゃいますか? 小規模チーム で、以下の要件を満たしているもの。
- 2~3人の開発者チームでの使用に適している
- 軽量で、処理量が多すぎない
- 開発者は、バグフィックスと大規模な機能の作業を簡単に分離することができます。
- 安定版ブランチを維持することができます (本番サーバーを動作させなければならないときに、「しまった」と思ったときのため)
理想を言えば、新しいバグに取り組む開発者のステップバイステップのプロセスを見てみたいものです。
解決方法は?
でScott Chaconが説明しているワークフローが役に立つかもしれません。 プロGit . このワークフローでは、常に存在する2つのブランチを用意します。 マスター と 開発する .
マスター は、あなたのプロジェクトのもっとも安定したバージョンを表し、このブランチからしか本番環境にデプロイできません。
開発 には、進行中の変更が含まれており、必ずしも本番環境に対応できるわけではありません。
から デベロッパー ブランチを作成し、トピックブランチを作成し、個々の機能や修正に取り組みます。機能や修正の準備ができたら、それを 開発 この時点で、同僚がマージした他のトピックブランチとどのように相互作用するかをテストできます。一度 開発 が安定した状態になったら、それを マスター . 本番環境へのデプロイは常に マスター .
Scott はこのような長期間稼働するブランチを、コードのサイロと表現しています。安定性の低いブランチにあるコードは、テストとチームによる一般的な承認を経て、最終的にはより安定性の高いブランチに移行します。
このモデルでのワークフローは、順を追って説明すると、次のようになります。
- バグを修正する必要があります。
- というブランチを作成します。 マイフィックス をベースとした デベロップ ブランチを使用します。
- このトピックブランチで、バグが修正されるまで作業します。
- マージ マイフィックス を 開発 . テストを実行します。
- 修正内容が他のトピックブランチと競合していることが判明した場合 ヒスフィックス にマージされました。 開発 を修正する必要があります。
- でさらに変更を加える。 マイフィックス ブランチでこれらのコンフリクトに対処してください。
- マージ マイフィックス を 開発 を実行し、再度テストを実行します。
- すべて正常に動作します。マージ 開発する を マスター .
- から本番環境にデプロイします。 マスター 安定していることが分かっているので、いつでも利用できます。
このワークフローの詳細については 分岐ワークフロー の章をご覧ください。
関連
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git で現在のブランチ名を取得するには?
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】既存のGitブランチをリモートブランチに追従させる?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
-
[解決済み】Gitで、既存の未コミットの作業を新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み】未マージファイルがあるため、Gitマージができない
-
git push reports an error ! [リモート拒否] master -> master (受信前のフックが拒否されました)
-
git revert 複数コミット
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] GitのFETCH_HEADとはどういう意味ですか?
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。