Git運用でGit Flowを採用することにしたので
SourcetreeのGit Flowをつかった開発フローを整理しました。
実現したいこと
- Gitに慣れていないメンバーでも無理なく運用可能なこと
- Git, Git Flowの操作はSourcetreeですべて実行
- ただし、GitおよびGit Flowの概念は理解していることが前提
- Github上でコードレビューを実施
- __feature__から__develop__へのPull Requestをレビュー
- コードはレビューワーがマージ
SourcetreeにGit Flowが表示されていない場合
- ツールバー上で右クリックし、ツールバーのカスタマイズを選択
- Git Flowをドラッグ&ドロップしツールバーに追加
開発フロー
リポジトリの初期化
はじめてGit Flowボタンを押すとリポジトリの初期化画面が表示されます。
運用ルールに合わせてカスタマイズすることができます。
基本的にデフォルト設定のままで問題ありません。
機能開発開始
Git Flowボタンを押すと推奨するアクションが表示されます。
開発着手時は「新規フィーチャーを開始」をクリックします。
フィーチャー名を入力してOKを押すとdevelopからfeatureが作成されます。
この場合はfeature/sampleが作成されます。
レビュー
実装が完了したらfeatureをプッシュして、Github上でプルリクエストを作成します。
レビューが完了したらGithub上でマージします。
次のステップで自動的にブランチが削除されるので、ここではブランチを削除する必要はありません。
機能開発終了
Git Flowボタンを押し、現在のブランチを終了ボタンをクリックします。
ブランチを削除を選択した状態でOKをクリックするとローカルとリモートのブランチが自動的に削除されます。
最後にdevelopでソースコードをpullします。
このときに「マージではなくリベースする」にチェックを入れます。
featureの変更内容はすべてdevelopに取り込まれているので、履歴はこのようになります。
リリース
Git Flowボタン押し、新規リリース開始をクリックします。
リリースバージョンを入力し、OKを押すとdevelopからreleaseが作成されます。
リリース作業が完了したらGit Flowボタンを押し、現在のブランチを終了をクリックします。
タグのメッセージを入力とブランチのプレビューの確認します。
問題ないことを確認してOKを押すとrelease は master, develop の両方にマージされます。
featureのときと同様にGithub上でマージとすることも可能です。
まとめ
- Sourcetreeを使用することで、git, git-flowのコマンドを知らなくてもGit Flowで開発をおこなうことができます。
- Github上でのコードレビューも問題なくおこなうことができます。
- ローカル/リモートのブランチの削除、タグの追加がgit-flowでされるので、オペレーションミスが少なくなります。