はじめに
railsを使って開発をしているプログラミング初心者のため、
Gitの使い方がまだあまりよくわかっておりませんでした。
個人開発において、コードレビューをしていただきながら開発していく際の
Gitの使い方を流れに沿って説明します。
特に知りたかったことが、「レビューを待っているときに、待ち時間を無駄にしないために次の開発を行う方法」だったのですが、簡単に見つからなかったためここにまとめます。
常に「どのブランチにいる状態なのか」を意識しながら行っていきます。
全体の流れ
行いたいことの流れは以下です。
①githubのリモートリポジトリからローカルリポジトリにデータを取得する
②取得したものから、ブランチを分けて開発する
③ローカルリポジトリの変更内容をリモートリポジトリに送りプルリクを出す
④コードレビューをしていただいている間に、ブランチを分けて別の新たな開発を行う
⑤コードレビューをいただき、④で開発した部分はとりあえず置いておきながら、③の状態に戻してご指摘点を修正する
⑥再度レビューしていただく
⑦④の状態に戻す
⑧プルリクの承認を得たので、github上でmainにマージを行いそれをローカルリポジトリにも、④にも反映させる(④の変更した部分はそのままにしたい)
⑨④の開発を続ける
①githubのリモートリポジトリからローカルリポジトリにデータを取得する
必ず、mainブランチにいる状態で行います。
$ git pull origin main
これで、ローカルリポジトリにデータを取得できました。
②取得したものから、ブランチを分けて開発する
今はmainにいる状態なので、ブランチを分けます。
$ git checkout -b AAA
//"AAA"の部分に好きなブランチ名を書く
ここで開発していきます。
本当にブランチを分けられているか不安な場合は
$ git branch
これで確認できます。
③ローカルリポジトリの変更内容をリモートリポジトリに送りプルリクを出す
開発が完了したら行うコマンドです。
$ git add -A
$ git commit -m "〇〇機能の実装"
$ git push origin HEAD
//"〇〇機能の実装"の部分に好きなメッセージを入れる
githubを確認し、プルリクを行います。
④コードレビューをしていただいている間に、ブランチを分けて別の新たな開発を行う
レビューをしてくださる方の都合もあるので、待っている間に次の開発に取り掛かります。
$ git checkout -b BBB
//"BBB"の部分に好きなブランチ名を書く
ここで次の開発をしましょう。
⑤コードレビューをいただき、④で開発した部分は保存、③の状態に戻してご指摘点を修正する
レビューしていただいたので、ご指摘いただいた部分を修正します。
そのためには、先に取り掛かっていた開発を一時保存し、元の状態に戻す必要があります。
$ git stash -u
$ git checkout AAA
git stash -u の "-u" は無くても大丈夫ですが、
無かった場合はaddしていないファイルはそのまま残ってしまいます。
つけておいた方が安心です。
これで、最初の開発部分を修正してきます。
⑥再度レビューしていただく
修正が終わったら、再度レビューをしていただきます。
$ git add -A
$ git commit -m "〇〇修正"
$ git push origin HEAD
//"〇〇修正"の部分に好きなメッセージを入れる
githubで確認をし、レビュー担当者にご連絡をします。
⑦④の状態に戻す
またレビュー待ちの時間があるので、次の開発を進めておきます。
$ git checkout BBB
$ git stash list
$ git stash pop stash@{0}
git stash list で一時保存している状態のものが確認できるので、それに合ったstash@{0}を選択します。
ここで再度、新たな開発の続きを行います。
⑧プルリクの承認を得たので、github上でmainにマージを行いそれをローカルリポジトリにも、④にも反映させる(④の変更した部分はそのままにしたい)
承認を得たら、承認部分を反映させます。
今、新たな開発をしている状態でもあるので、一時保存を行なってから反映させます。
$ git stash -u
$ git checkout AAA
$ git pull origin AAA
$ git checkout BBB
$ git merge AAA
これで新たな開発部分にも、修正点を反映させることができます。
コンフリクトがある場合は、必ず修正しておきます。
⑨④の開発を続ける
これで最初の開発は完了したので、新しい開発を進めていきます。
$ git checkout BBB
$ git stash list
$ git stash apply stash@{0}
以上を適宜、繰り返しです。
お読みいただき、ありがとうございました!