発生した問題
上記などを参考にしつつ、一人でプルリクエスト練習中にリモートブランチを更新してローカルに取り込む部分で、ファイルが更新されていない問題に出くわしました。
$ git fetch origin
解決策
下記記事で origin/main
と main
ブランチのhead違いを確認してみろとあったので確認しました。
$ git log origin/main | head
commit b0615378c8cb327cbc5fafb3f6454b6c52730c40
Merge: 35cd328 dafd45e
Author: kabokawakabo <62997698+kabokawakabo@users.noreply.github.com>
Date: Mon Mar 13 10:46:03 2023 +0900
Merge pull request #2 from kabokawakabo/tmp
Tmp環境をmainにマージ依頼
$ git log main | head
commit 35cd3287c2fe825780b38482a059277d039a2fb3
Merge: 27b8da0 354aec2
Author: kabokawakabo <XX@XXMacBook-ea.local>
Date: Sat Feb 11 14:49:20 2023 +0900
Merge remote-tracking branch 'origin/main'
commit 27b8da03d5dd8741116fc74193df91b0a5f66463
Author: kabokawakabo <XX@
XXMacBook-ea.local>
HEADが違う!
その後、同じ記事を参照しつつ、実行しました。(今回はorigin/main
側に ローカルのmainのHEADを揃える)
- 注意:一番下に本当にしたかったコマンドがあります。
$ git checkout origin/main -b new_main
git checkout main
git merge new_main
この方法だと new_mainのブランチが残ってしまったので $ git branch -d new_main
で削除しました。
補足
結局上記コマンドは以下のコマンドでOKだったと思います。
$ git checkout main
$ git merge origin/main
よくよく考えたら、 リモートの設定(ローカルのorigin/~ が指す)をfetch
して ローカルのブランチに merge
するという考えなので、 mergeしてないのにファイルが変わってないと焦っていた自分が恥ずかしいですね...。失敗してもいい時に勉強になったのでヨシ!ということで
どうでもいい独り言
「mergeのコマンドを上手く使えば、1ラインで書けそうだと思ったのですが、前・後でmergeしたいbranch書き間違えてミスってしまう人的災害?を防ぐために、各実行を適宜するやり方がデフォルトで採用されているのかもと思ったりしました」