redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

git-flow や GitHub Flow を運用しやすいようにアレンジして使っていました

ちょっと前の開発プロジェクトで使っていたGitを使用したワークフローについて書いてみます。

ざっくり言うと、リポジトリを一つしか使用しない git-flow って感じです。もしくはルールを追加した GitHub Flow でしょうか。

以下、箇条書きで書きます。

  • master, develop, featureブランチを用意します。機能を実装するときは、developerブランチからfeatureブランチ配下に「今日の日付+バックログ項目やタスクのID」という命名でブランチを作成します。

  • featureブランチは実装中、ある程度のまとまりでサーバーにプッシュします。実装完了後は、サーバー上でプルリクエストを作成してレビューを行い、レビューが完了したらdevelopブランチにマージします。

  • リリースを行う時は、最新のdevelopブランチから、release作業用ブランチを作成して、リリース準備作業を行ったらmasterブランチ(とdevelopブランチ)にマージし、masterブランチをサーバーにプッシュしてから、masterブランチにてリリースデプロイを行います。

  • コードレビューは、既に書きましたがfeatureブランチからdeveloperブランチへのマージ時に行います。リリース作業のチェックは、プッシュ後にmasterブランチで確認します。

  • ツールは、git-flow関連はSourceTreeを使っていて、それ以外は必要に応じてコマンドラインなども使用していました。

  • プルリクエストを作成するまでは、featureブランチは担当者専用のブランチなので、ローカルのブランチでコミットの順番を入れ替えたり、集約してコミットログを整理した後、サーバーに強制プッシュすることもOKです。

  • CI/CDを行うとしたら、feature->developへのマージ後や、masterのプッシュ後になると思います。

プロジェクトは変わってしまったのですが、中々良く出来ていると思ったので、覚えている限り書いてみました。