小村の開発環境構築(11) GitHubにPushする
こんばんは、小村だよ!
今日はHerokuに対してデプロイをしてみたかったよ!
- トラブル発生でdevelopブランチのPushまでだよ!進捗全然なし!
やること
- GitHubのmasterブランチ保護設定変更
- developブランチへのPush
- Dependabotによるプルリクの解消
前提条件
- アプリケーションを作成し、commitが済んでいる(前回記事までの状態)
事前準備
手順
GitHubのブランチのルールについて
GitHubの設定をしたときにブランチのルール設定はしなくていいといったな
ごめんやっぱ急にしたくなったのでします!!!えへへ!!!
というわけで最初は[main]ブランチに直接Pushできなくする保護設定しまーす!
追記:ソロプロジェクトでこのルール設定すると承認できなくて詰みます
私は結局このルール設定を削除しました……
GitHubのブランチのルール設定
Githubの対象プロジェクトの設定画面から[branchs]を選択して[rules]をクリック
Githubは英語なのですが、Google翻訳通せば普通に理解できるよ!
- [branch]を支店と訳すのはご愛敬
ルール設定の目的は[main]ブランチに対して、私(管理者)が直接pushしないこと
それを達成しつつよさげなルールを選択した結果、参考サイト通りになったよ!
[develop]は普通に更新するので保護かけないけど、[release]は悩むな……
まぁまずは緩く[main]だけにしよっと!
というわけでブランチの保護設定は完了!
[develop]ブランチへPush
さっそく、今まで作成したアプリを[develop]ブランチへpush
あ、今後できるだけgitの操作をコマンドでやっていきまス
- 前回のこともあるしUIの操作だとスクショがとりづらい……
というわけで下記を実行
git push origin develop
- よし、問題なくpushできたネ!
めっちゃメールくる
\ピコーン! ピコーン!/
!?!?!?!?
めっちゃGmailの受信音がするんですけど!!!!
めっちゃGitHubからメール来てるんですけど!!!!!
でも心当たりはある。create nuxt-appでなんかそういう設定したわ。
以下過去の自分の記事から引用
[x] Dependabot (For auto-updating dependencies, GitHub only)
自動でライブラリのバージョンアップをしてくれる模様。
将来的にCL/CIは設定するので入れてみる!
間違いなくこれだわ。メール送信者がそうだもん。記録しててよかった!
CL/CIとか関係なくやってくれるんだねー。
ありがたいけど心の準備できてなかったよ!
Pullしてみる
VSCodeにて
git pull
実行予想どおりのことになってるー!
ここから先の結論
この先無駄に長く苦闘するけど、結論を言ってしまえば
- GitHubからそれぞれプルリクを承認してdevelopにマージ
- 競合してマージできないのは放置
- 放置してると競合を解消したプルリクが飛んでくるのでマージ
- すべてマージ出来たら完了
で解決するよ![Dependabot]は有能なのでこちらの出る幕はないぜ!
今後自動でマージできるようにしたいね!ちゃお!って結論で締めます!
では苦闘スタート
ひとまずそれぞれのブランチに切り替えて、
yarn run dev
が動くことを確認特に問題なさそう
というかnode_modulesとか削除して確認する必要あるのかな
だとすると半端なく面倒……。とりあえず今回はいいら……
GitHubよりプルリクエストを承認
Commitタブから修正内容を確認可能。
問題なければ下の方の[Marge pull request]ボタンを押下
競合が発生
#1から順番にマージしていくと、#6で競合が発生
まぁそうもなるよね……
とりあえず#6を取り消してみよう。また勝手にプルリク来るんじゃないかな?
#7はマージできた。#8も競合したので取り消し
- (補足)すぐ後に出てくるけど、取り消しは意味ないので参考にしないでね
pullしたりpushしたり
あれ?#6と#8のブランチが残っちゃってる?
もう一回pushしてもまた作ってくれたりしないっぽい
やっちまったか!?!?
やばいーーーGitHub経験薄いのばれルーーー!!!
プルリクエストを再開し、競合を解消
取り消しじゃどうにもならないようなのでプルリク再開
しかし競合の解消ってどうするんだ……
「dependabot 競合」で検索しても有用な情報がない……
翻訳してあせらずに読んでみるか……
あ!!!!!!
そゆこと!?!?!?!?
コメントに[@dependabot rebase]を書き込むと競合解消してくれるの!?!?
コメント書いたら「すでに最新」って言われた件について
おや?確かにいつのまにか[marge request]ボタンが活性になっている
#8も何もしてないのに[marge request]ボタンが活性になっている
ははーん!(したり顔)
Dependabotについての結論
競合が起きても時間経過で競合を解消してくれる(えらい)
急いで競合を解消したいとき(?)はコメントに[@dependabot rebase]を入力(?)
だから慌ててプルリクを取り消したりする必要なんかないんだよ!
無事すべてマージ
すべてマージ完了!git graphはこういう図になりました
yarn run dev
を実行し問題ないことを確認つっかれたーーーー!!!!
おわりに
今日はherokuへデプロイまでするつもりでいたけど、まさかの伏兵に時間とられた!
なので続きはまた次回にする!
Dependabotについてもまた今度詳しく調べないとだねー
ちょいちょい見た感じ、手動でマージせずに自動でマージにできるみたいだし
とりあえず今回は、ちゃお!