はじめに
HappinessChainではmain
ブランチから作業ブランチを切ってpull requestすることで課題提出を行っています。
LGTMをもらった(approveされた)後に何もせずにいると、main
ブランチには作業した内容が含まれませんし、作業ブランチがどんどん増えていってしまいます。
それを防ぐためにapprove後に毎回行っているmainブランチへのマージ作業と作業ブランチの削除作業についてまとめました。
今回は例としてgolf_score
ブランチを作業ブランチとし、このブランチをmain
ブランチにマージした後、削除していきます。
注意
こちらはあくまでHappiness Chainの課題がapproveされた後に行う操作です。
現場ではmainブランチに勝手にマージしてはいけなかったり、リモートブランチを削除してはいけなかったりとそれぞれルールがあると思いますので、現場のルールに従ってください。
GitHubでmainブランチにマージする
マージはGitHubで行います。
main
ブランチへのマージはPull requestsの画面で実行できます。
レビュワーにapproveをもらうと次のような画面が出てくるのでボタンを押します。
マージすると『Merged』と表示されるようになります。
GitHubでリモートブランチを削除する
golf_score
ブランチは今回の作業用に作成したブランチで今後使う予定はなく、変更した分はすでに先程main
ブランチにマージしたので、削除します。
ターミナルでpullする
ここからの作業はターミナルで行います。
ローカルのmain
ブランチをリモートの最新のmain
ブランチと一致させます。
マージコミットを残したくない場合はpull
するときに--rebase
をつけます。
$ git checkout main $ git pull origin main [--rebase]
ローカルでブランチを削除する
まだローカルにはリモート追跡ブランチもローカルブランチも残っている状態です。
$ git branch -a golf_score * main remotes/origin/golf_score remotes/origin/main
リモート追跡ブランチを削除する
先程GitHubでリモートブランチは削除したので、削除したことをローカルに反映させることでリモート追跡ブランチ(origin/golf_score)を削除します。
$ git fetch --prune From https://github.com/wsigma21/hc_practice - [deleted] (none) -> origin/golf_score
これでリモート追跡ブランチは削除されました。
$ git branch -a golf_score * main remotes/origin/main
ローカルブランチを削除する
ローカルブランチも削除します。
$ git branch -d golf_score Deleted branch golf_score (was d8a92de).
これでmainブランチだけになってスッキリしました。
$ git branch -a * main remotes/origin/main
新たな課題に取り組むときは、またmain
ブランチからブランチを切って作業していきます。