■前提
現在developブランチのタグが1.0.0だとする。 ※お試し機能ベータ版のGitブランチという想定
現在releaseブランチのタグが1.0.0だとする。 ※安定動作バージョンのGitブランチという想定
feature/issue-XXXブランチが機能開発作業用ブランチ ※developにマージ後に削除予定。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
0)作業チケット作成(Issue)
1)作業ブランチfeature/issue-XXXX (XXXはIssueのURL番号)
2)開発し単体テスト実施
3)PR(developブランチ←feature/issue-XXXX)作成しコードレビュー依頼
4)PR承認・マージ後、本番環境にdevelopブランチをチェックアウトし配備しタグ1.0.1とインクリメント
5)一定期間公開し様子見しユーザーから苦情が特にないならリリース用PR(release←develop)作成後レビュー依頼
もしユーザーから苦情がでてイケていないなら即時切り戻しをやる。
具体的には、前バージョンのタグ1.0.0のreleaseブランチをチェックアウトする操作を実施。
その後、タグ1.0.0までバージョンを戻すためdevelopブランチをrevertする。(打ち消しコミット実施)
6)PR承認・マージ後、releaseブランチを本番環境にチェックアウトし配備
このときのgitハッシュ値にタグ1.0.1にインクリメントする。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
上記1〜6を繰り返し常に安定版のreleaseブランチが維持されるような形で開発・運用を実施すればよいかと思います。
動作確認もろくにせずに一旦完成したからFTPクライアントで手動アップロードするのは良くないので本当にやめましょう。
本当はGitHubFlowに厳密に従ってほしいけど、ここは環境分離とかやっていないと思うしこれくらいのブランチ運用で十分。