こんにちは。Tomoyuki(@tomoyuki65)です。
「GitHubは使い始めたけど、イマイチ使い方がよくわからない!」
って方もいるのではないでしょうか?
現役で開発している方じゃないと、なかなか使い方を理解しづらいですよね。
この記事では、そんなGitHubを利用した開発方法について解説します。
目次
Forkをする開発フロー
OSSの開発などでGitHubを利用する場合、次のような手順で開発を行います。
- GitHub上でForkする
- Forkしたリポジトリを自分の環境にcloneする
- cloneしたリポジトリからブランチを作成する
- ブランチに対してコードを変更し、コミットする
- ブランチをForkしたリポジトリにpushする
- GitHubでFork元のリポジトリに対してPull Requestを作成して送る
不特定多数の人にコミット権限を付与できないパブリックなソフトウェア開発では、この方法によってリポジトリに意図しないコミットを防ぐことができます。
ただし、社内開発などのクローズドな環境では、Forkをする開発フローは少々複雑です。
そういった場合は、GitHub FlowのようにForkをしないフローで開発を行います。
それにより、開発者一人あたりが把握するリポジトリが少ないため、シンプルなワークフローとなります。
GitHub Flowとは?
GitHub Flow(ギットハブ フロー)とは、GitHub社が実践しているとてもシンプルな開発フローです。
次のような手順で開発を行います。
- masterブランチは常にデプロイ(ソースコードを本番環境にリリースさせること)できる状態とする
- masterブランチを自分の環境にcloneする
- 自分の環境でトピックブランチを作成し、ブランチにはその特質を表す名前を付ける
- トピックブランチに対してコードを変更し、コミットする
- トピックブランチを定期的にpushし、GitHubリポジトリにブランチを作成する
- 助けやフィードバックが欲しい場合、そしてレビュー依頼をする場合はPull Requestを作成し、Pull Requestでやり取りする
- 他の開発者がレビューし、作業終了を確認後にmasterブランチにマージする
- masterブランチへマージしたら、ただちにデプロイする
尚、GitHub Flowでは1日に何度もデプロイする想定のため、デプロイツールを使用し、デプロイするための作業が完全に自動化されている必要があることを覚えておきましょう。
GitHub Flowを実践してみよう
では実際にGitHub Flowを実践してみましょう。
今回はGitHubとは?GitHubの使い方を解説!で作成したリポジトリを使用し、一人でGitHub Flowを実践する方法を解説します。
トピックブランチを作成
まずトピックブランチを作成します。
今回は例として「README.md」ファイルにコメントを追記するため、ブランチ名を「add-comment」とします。
では以下のコマンドを実行してみて下さい。
$ git checkout -b add-comment
トピックブランチに対してコード変更、コミット
現在のブランチが「add-comment」であることを確認し、「README.md」ファイルにコメント「GitHub Flowの実践のため追記」を追記しましょう。
テキストエディタで「README.md」を開き、2行目にコメントを追加して下さい。
そして以下コマンドを順に実行し、コミットします。
$ git add README.md $ git commit -m "コメント追加"
トピックブランチをpush
コミット完了後、トピックブランチをpushし、GitHubに反映します。
以下のコマンドを実行してみて下さい。
$ git push origin add-comment
pushしたブランチの内容がGitHubに反映されます。
Pull Requestを作成
ではブランチについてPull Requestを作成してみましょう。
「Compare & pull request」をクリックします。
タイトルと内容を記載し、「Create pull request」をクリックします。
レビュー
通常は他の人がPull Requestについてレビューします。
今回は一人しかいないので、自分でやってみましょう。
「Files changed」タブをクリックします。
変更内容をレビューします。
レビュー完了後、タブ「Conversation」をクリックして最初の画面に戻りましょう。
コメント記載後、「Comment」をクリックします。
masterブランチにマージ
レビューで問題なければ、masterブランチにマージします。
「Merge pull request」をクリックします。
「Confirm merge」をクリックし、マージが完了です。
ブランチの削除
masterブランチへのマージが完了したらブランチを削除しましょう。
「Delete branch」をクリックします。
ブランチが削除されます。
以下のコマンドを順に実行し、自分の環境のブランチも削除します。
$ git checkout master $ git branch -D add-comment
ローカルのmasterブランチを更新
ここまででGitHubのmasterブランチは更新されましたが、ローカルのmasterブランチに更新内容が反映されていません。
そこで、pullコマンドでローカルのmasterブランチを更新します。
以下のコマンドを実行してみて下さい。
$ git pull origin master
ローカルにあるファイルが更新されていればOKです。
まとめ
- OSSの開発などでGitHubを利用する場合、Forkする開発フローで行うことで、リポジトリに意図しないコミットを防ぐことができる
- 社内開発などのクローズドな環境では、GitHub FlowなどForkしないシンプルな開発フローで行う。
- GitHub Flow(ギットハブ フロー)とは、GitHub社が実践しているとてもシンプルな開発フローのこと
- GitHub Flowでは1日に何度もデプロイする想定のため、デプロイは完全に自動化されているべきである
今回はGitHub Flowについて解説しました。
実際にGitHubを使ってみると、開発フローの理解が深まりますね!
チームやプロジェクトによって、開発方法が変わることがあるので、まずは基本的なGitHub Flowについて理解しておきましょう。
もっと詳しく知りたい方は、私も参考にしているコチラの本もオススメです。
尚、GitやGitHubについてよくわからない!
って方がいたら、コチラの記事を参考にしてみて下さい。
Tomoyuki
最新記事 by Tomoyuki (全て見る)
- 【スト6】モダンキャミィの初心者向けコンボまとめ【STREET FIGHTER 6(ストリートファイター6)】 - 2024年11月10日
- モンハンワイルズでおすすめのオプション設定まとめ【Monster Hunter Wilds】 - 2024年11月4日
- モンハンワイルズでおすすめのグラフィック設定まとめ【Monster Hunter Wilds】 - 2024年11月2日
コメントを残す