
こんにちは、TAKです。
今回は、個人開発する場合の「GitHub」の使い方や一連の流れについて紹介していきたいと思います。
僕は初めて個人開発する時に、「Gitの基本的なコマンドはわかるけど、開発時のフローがよくわからない」という状態に陥っていたので、同じような方がいれば参考にしてみてください。
【こんな人に読んで欲しい記事です】
● これから「GitHub」を使って個人開発をしてみたいと考えている方
● 個人開発する時に必要となるGitコマンドや、全体的な流れが今一つイメージ出来ない方
今回は最初に図を用いて全体フローをイメージし、その後実際にGitHubの画面やコマンドを確認していきます。ちなみに、ステップとしては①~⑤まで紹介していますが、メインとなるのは「ステップ①~ステップ③」です。
コンテンツもくじ
個人開発の全体的なイメージ
僕の頭の中にある個人開発のイメージを可視化してみた図が以下の通りです。
基本的にこれで個人開発が出来ているので、大まかな流れは間違っていないはず。

この後、①~⑤の番号順に具体的な内容と使用するコマンドを見ていきますが、まずは大まかな流れを把握しておくことが大事かと思います。
今「ローカルのmasterブランチ」に立っているとして、そこから「①→②→③」と目を移してもらえれば、なんとなくこの図のフローがわかるはずです。④と⑤も記載していますが、ここはおまけです。
① : 開発用のブランチ(develop)を作成する(新たにブランチを切る)
② : コードを書いたら、GitHub(①と同名のブランチ)へプッシュする
③ : プルリクエストをして、自分で内容を確認してmasterへマージする
④ : (必要に応じて)ローカルのmasterブランチを最新の状態にする
⑤ : (必要に応じて)リリース用のコードをサーバーにアップロードする
これから各ステップごとにgitコマンドや流れを見ていくにあたり、GitHubを以下の状態にしておきます。
具体的には、GitHubに新たなリポジトリを作成して、テキストファイルがアップロードされている状態で始めていきたいと思います。



今回は自分一人なので「master」ブランチに「project.txt」ファイルをpushした状態で始めています。
【ステップ①】開発用ブランチを切る
まず最初に、開発用ブランチを作成しましょう。
デフォルトでは「master」ブランチしかないので、開発用ブランチ「develop」を追加します。

人によっては「feature」ブランチにするかもしれませんが、個人的には関与する自分がわかれば何でもいいのかなと思っています。
開発する時には「develop」ブランチに移動し、作業をするようなイメージです。
上記では「ブランチの作成と切替」を一度にしていますが、別々にgitコマンドを入力してもOKです。
【コマンド①】 「 git checkout -b <ブランチ名> 」で作成と切替を一度に実現
【コマンド②】 「 git branch <ブランチ名> 」で作成し、「git checkout <ブランチ名>」で切替
ブランチ関係のコマンドが今一つわからない方は、以下記事で紹介しているので参考にしてみてください。
【ステップ②】GitHubにファイルをアップロードする
続いて、「develop」ブランチにステイしながら開発を進めていきます。
具体的には、「project.txt」に適当にテキストを追加してGitHubにプッシュすることにします。
内容は何でもいいですが、今回は以下赤枠のテキストを追加しておきます。

あとは、「add→commit→push」でGitHubにアップロードしておきます。
ポイントは、①で作成したブランチ名と同じ名前でpushする点です。

ここの流れが今一つわからない方は、以下の記事が参考になるかと思います。
【ステップ③】プルリクエスト→セルフマージを実行
プッシュした後のGitHubを見てみると、以下のような画面になっていると思います。

表示されていなかったとしても「Pull requests」のタブから呼び出すことも可能です。
今回は表示されているので、「Compare & pull request」をクリックして進めます。
すると、以下のような画面になるので、内容を確認して問題なければ「Create pull request」を押します。
ポイントは、マージのベクトルが「develop→master」になっている点の確認です。

デフォルトのままで問題なさそうなので、「Create pull request」をクリックします。
クリックすると、以下画面のように「コンフリクトがないことの確認」が自動的にされて、「マージするかどうかの選択」が表示されます。

チーム開発の場面では、内容を確認してマージするのは上司の役割かと思いますが、個人開発では自分でセルフマージします。このままで問題ないので、「Merge pull request」→「Confirm merge」を押します。
(必要に応じてコメントを残せますが、今回は特にコメントしないで進みます。)
しばらくすると、マージが完了してプルリクエストが完了となります。

ポイントは、ステップ③までの作業によってGitHubの「master」ブランチを常に最新状態にしておけるということです。
今回は便宜上テキストファイルを使ったので現実味なかったですが、pythonなどで機能を追加したい時には、「develop」ブランチで開発&pushし、GitHub上でプルリクエクスト&セルフマージすれば、常にGitHubの「master」ブランチが最新状態になるということです。
あとは必要に応じてGitHubのmasterブランチを「ローカル」や「サーバー」に反映すればいいだけです。
参考までに、GitHub上のmasterブランチがどうなっているか見ておきましょう。


無事に反映されていますね。
次からは、参考程度ですが「pull」コマンドと「clone」コマンドについて軽く触れていきます。
【ステップ④】pullコマンドでローカルに反映
最新状態になっている「GitHub」上の「masterブランチ」を必要に応じてローカルに反映させます。
ローカルのブランチを「master」に切り替えた上で、「pull」や「fetch→merge」するようにしてください。
詳細は以下記事で紹介しているので、参考にしてみてください。
【ステップ⑤】リリース用ファイルをcloneする
最新状態になっている「GitHub」上の「masterブランチ」を必要に応じてサーバーに反映させます。
初回であれば、サーバーにSSH接続した上で、「clone」することが一般的かと思います。
「clone」の方法については以下記事で紹介しています。
個人開発用のサーバーとしては、「VPS」がちょうどいいかと思います。
オススメのVPSとして「Vultr」があるので、興味のある方はコチラも参考にしてみてください。
まとめ
今回は「個人開発」をテーマとして、GitHubの基本的な流れや使い方を見てきました。
チーム開発の場面ではより複雑にブランチを使いこなす必要があるのかもしれませんが、個人開発の場合は自分しかいないので、今回紹介したような「シンプル」な方法で十分かと思います。
個人開発の進め方やイメージがわからなかった方の参考になれば幸いです。
では今回はこのへんで。