第3章 Github Flow/Git-Flowを使った運用

Github Flowの作業の流れ

HTMLコーディングがメインのブランチ管理

Github Flowは十分シンプルですが、静的ページのみのサイトや、1人で運用しているサイトではもう少しスリムにできる猶予があります。たとえば、静的ページのみの小規模なサイトの場合、プルリクエストを使ってHTMLやCSSを他人にレビューしてもらう利点はそれほどありません。なぜなら、HTMLやCSSのほとんどが見た目に関するもので、プログラムのようなコードの妥当性のチェックはそれほど重要ではないからです。
※読み込み速度やバリデーションチェックは重要ですが、検査、計測ツールを使って作業者本人が行えます。

Github Flowからプルリクエストを省略するとその思想から離れてしまいますが、0からルールを作成するよりはGithub Flowをカスタマイズするほうが良いでしょう。

ここでは1人、もしくは少人数で、コードビューがそれほど重要ではないケースを想定した作業の流れを紹介します。

作業環境
本番環境のディレクトリ:
/var/www/example.com
開発環境のディレクトリ:
/var/www/dev.example.com
リモート:
Github

開発準備

1) 開発用ディレクトリに移動

cd /var/www/dev.example.com

2) 開発用ブランチを作成

mainブランチに切り替えて最新の状態にします。

git checkout main
git pull origin main

mainブランチから新しいブランチを作成します。

git checkout -b [新しく作るブランチ名]

開発期間

1) 変更をコミット

作業がひと段落したところで更新、追加ファイルなどを確認します。

cd /var/www/dev.example.com
git status

インデックスに更新や、未登録のファイルがあると下記のようなメッセージが表示されます。

On branch test
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   a.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        "b.txt"

no changes added to commit (use "git add" and/or "git commit -a")

「Changes not staged for commit」でリストされたファイルが更新ファイル、「Untracked files」でリストされたファイルが追加ファイルです。

インデックスに未登録のファイルがある場合は、下記コマンドでインデックスに追加します。

git add [ファイル名]

下記コマンドで全ての未登録ファイルをインデックスに追加できます。

git add .

問題なければ、コミットメッセージをつけてコミットします。

git commit -am "****"

2) リモートにプッシュ

定期的にコミットしたブランチをリモートにプッシュしてください。

git push origin [ブランチ名]

コミットは必要に応じて何度でも行って問題ありません。ファイルを追加したタイミングや、1つのファイルの作業が終了した段階などでコミットしても良いですし、ブランチの作業範囲が小さい場合は、全て終了した段階でまとめてコミットしても良いでしょう。

デプロイ

ブランチでの作業が終了し、コミットが終わったら本番にデプロイします。

1) 開発用環境でmainブランチにマージしてプッシュ

開発用ディレクトリに移動して、mainブランチに切り替えます。

cd /var/www/dev.example.com
git checkout main

開発用ブランチをmainブランチマージして、リモートにプッシュします。

git merge --no-ff [ブランチ名]
git push origin main

これでリモートリポジトリに、プッシュしたmainブランチが反映されています。

2) リリースする

本番用ディレクトリに移動してプルします。

cd /var/www/example.com
git pull origin main

3) コミットの確認

git log

4) リリースしたブランチの削除

リリース後は、開発用ディレクトリに移動してローカルブランチを削除します。

cd /var/www/dev.example.com
git branch -d [ブランチ名]

mainにマージ済みであれば、上記コマンドで削除できます。まだマージしていない場合はエラーメッセージが表示されるので、その際は操作にミスがないか確認してください。

最後にリモートリポジトリからも該当ブランチを削除します。

git push origin :[ブランチ名]

以上でブランチの作成からデプロイ、削除までの操作が完了しました。リリースに必要な最低限の操作は以上になります。

関連記事