開発をする上では避けて通れないGitHubでのコードの管理。アプリ制作時に私は相当苦労したのでまとめを作っておきます。ブランチについては様々な流派が存在しますが、この話に登場するのはmain develop featureです。いろいろ記事を読んだ上での個人の見解ですので間違っている事もあるかも知れませんがご了承ください。

1.issueを作る。isuueベースで進めていくと管理をする上でとても役に立つので、積極的にやりましょう。やり方は先輩方を参考にしてください。なぜ大事かは後ほど分かります。

2.developブランチベースでブランチを切る。いいね機能つけるとします。ブランチ名はfeature/favarite_#1。#1って何やねんって思ったそこのあなたいい勘してますね。#1はどのissueと結びついているのか明示的にする為に命名しています。1が分かれば何でも良いです。そしてcommitするときにこの#1をメッセージを含めてみてください。これであら不思議コミットとissueが紐づくのです。どういうことかは先輩方のGitHub見てください。リンクが出現しているはずです。

git checkout -b feature/favotire_#1
git commit -m "Add:いいね機能を実装 #1"

3.ローカルでの変更が完了した場合pushしてリモートにも反映させてあげましょう。みんな大好きプルリクエストです。初回はgit pushするだけでコマンドを親切に教えてくれますがoriginって何という方のために一応説明しておきます。originはリモートのGitHub上でのことです。ローカルとリモートの考えが分かっていないと沼ですので早急に和解してください。

git push origin feature/favorite_#1

あとよくやるミスがプルリクの先です。デフォルトではmainになっていますが設定を変えるとdevelopに変更できます。毎回変えるのは正直面倒です。私は何度も間違えました。

4.プルリクを承認後、マージをする。コンフリクトが起きている場合親切に教えてくれますので焦らず慌てず正確に直しましょう。GitHubが混乱しているのでその混乱を解いてあげるのです。操作したのはあなたですから勿論分かりますよね。例えるとあなたが落としたのは金の斧?銀の斧?それても両方?って聞いてきます。変更差分が分かりやすくカラーリングされているので正しいものを選びましょう。

5.コンフリクトを解消して問題ない状態ならマージしてもいいよボタンが出現します。何度も言いますが今やっていることはリモート上の話です。この段階ではローカルとの間に差異ができています。リモート上でマージしてissueを閉じる・ブランチを消すのが一連のお作法です。

6.リモート上での変更をローカルに取り込む。先程まではリモート上で作業していましたが次はローカルの話です。そんなときに使える便利なコマンドがgit pullです。よく聞くgit fetch git mergeコマンドはgit pullコマンドを分解したイメージです。どちらを使うかはあなたのお任せしますが、やっていることは微妙に違います。

以下developブランチ上で

git pull origin develop
git fetch origin develop
git merge origin/develop

7.上記操作を行うことによりリモートとローカルでの差異がなくなりました。developブランチが最新になったので次はmainブランチを最新にしていきましょう。やり方は簡単です。developブランチをmainブランチに向けてプルリクを送るだけです。こうすることによりmainブランチが最新になります。そしてローカルに反映させましょう。

git pull origin  main

8.次はみんな大好きデプロイ作業です。私はherokuを使っています。mainブランチを最新にするまでの流れは大体同じと思うのでこの先はデプロイ先に合わせてください。

git push heroku main

9.herokuを使用する場合は実行できる環境を用意しておいてください。以降はこの流れを繰り返していけば良いだけです。デプロイをする頻度は人によると思いますがissue単位でやっておくと良いかもですね。