プログラミングを始めた初学者向けの記事です。
プロダクトを作成していて、Git/Githubで管理しているとき、ついついマスターブランチのみで作業を行なってしまうことがあると思います。
以下は、今後チーム開発することを見据えた「擬似チーム開発」的な作業フローで開発を進める手順になります。
プルリクエストを行う
以下のコマンドでブランチを最新の状態にします。
git pull origin main
ブランチを最新の状態にした後は、ブランチを切っていきます。
ここではpracticeブランチを作成します。
git checkout -b practice
git checkoutに-bオプションをつけると、新しいブランチを作成しながらHEADを変更することができます。(HEADは今自分が作業しているポインタのことです)
ここで何でもいいので、ファイルの内容を書き換えます。(何かしらの変更がないとコミットできないので)
そしてコミットした後、リモートリポジトリにpracticeブランチをプッシュします。
git add .
git commit -m "add practice"
git push origin practice
それではGitHubを開きます。
先ほどプッシュしたリモートリポジトリから、Pull requestのタブを開きます。
Compare & pull requestを押した後、プルリクエストの題名と本文を入力し、Create pull requestボタンを押せばプルリクエストの完了です。
プルリクエストが完了したあとは、右側のReviewersからレビュアーを選択し、プルリクエストをレビューしてもらう人を選択します。
以上でプルリクエストは終了です。
issueを作成する
手順は以下になります。
1.issue を作成
2.ローカルリポジトリでブランチを切る
3.ローカルリポジトリ、ブランチ上で作業する
4.リモートリポジトリにコミット &プッシュ
5.リモートリポジトリでプルリクエストを作成して、ブランチをマージ
6.issue を確認してクローズ
7.ローカルリポジトリのマスターブランチをリモートリポジトリと同じ内容にする
1. issue を作成
まず GitHub の作業リポジトリで issues を開き、New issue をクリックします。
次に
①タイトルを入力(作業内容)
②内容を入力(具体的にどんな作業をするのか、箇条書きにする)
③Submit new issue をクリックして issue を作成
issue が作成されるので、この issue に基づいてブランチを作成します。
このとき issue に #番号 が作成されます。この #番号 でコミットを紐付けます。
2. ローカルリポジトリでブランチを切る
ローカルリポジトリ、ターミナルでブランチを作成します。
ブランチ名に issue の #番号 を入れるとわかりやすいです(ブランチは特に関連付けされる訳ではないです)。
$ git checkout -b ブランチ名#番号
もしくは
$ git branch ブランチ名#番号
$ git checkout ブランチ名#番号
3. ローカルリポジトリ、ブランチ上で作業する
issue を意識して、作業を行います。
作業中に issue と作業内容がズレるやるべきことが出てきたら、その都度備忘録的に issue を作成しても OKです。
4. リモートリポジトリにコミット &プッシュ
作業が終わったら、ステージに上げる → コミット → リモートにプッシュします。
$ git add .
$ git commit -m 'いいね機能 #番号'
(コミットコメントに issue の #番号 を必ず入れる)
$ git push origin ブランチ名#番号
5. リモートリポジトリでプルリクエストを作成 → マージ
プルリクエスト作成の前に、GitHub に行ったら issue をクリックします。
コミットが issue と関連付けられていることを確認できたらプルリクエストを作成します。
①タイトルにコミットコメントが自動で入力される(この #番号 により issue とプルリクエスト も関連付けされます)
②適時コメントを入力
③良ければ Create pull request でプルリクエストを作成
Merge pull request でマージを完了します
6. issue を確認してクローズ
Close issueをクリックします。Closed と表示されていればOKです
7. ローカルリポジトリのマスターブランチをリモートリポジトリと同じ状態にする
最後に、ローカル環境でマスターブランチに移動して更新
$ git checkout main
$ git pull origin ブランチ名
# ブランチ名は先ほど使っていたもの
1.に戻り繰り返し作業を行います。
参考: