1
0

More than 1 year has passed since last update.

git fetchでつまづいた素人の備忘録

Last updated at Posted at 2023-03-13

発生した問題

上記などを参考にしつつ、一人でプルリクエスト練習中にリモートブランチを更新してローカルに取り込む部分で、ファイルが更新されていない問題に出くわしました。

リモートをfetchを実行
$ git fetch origin

解決策

下記記事で origin/mainmain ブランチのhead違いを確認してみろとあったので確認しました。

origin/main
$ 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にマージ依頼

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を揃える)

  • 注意:一番下に本当にしたかったコマンドがあります。
origin/mainと同じ位置の new_mainのブランチを作成し移動
$ git checkout origin/main -b new_main
mainに移動
git checkout main
mainを new_mainにマージ
git merge new_main

この方法だと new_mainのブランチが残ってしまったので $ git branch -d new_main で削除しました。

補足

結局上記コマンドは以下のコマンドでOKだったと思います。

mainヘッダー を origin/main に揃える
$ git checkout main
$ git merge origin/main

よくよく考えたら、 リモートの設定(ローカルのorigin/~ が指す)をfetch して ローカルのブランチに merge するという考えなので、 mergeしてないのにファイルが変わってないと焦っていた自分が恥ずかしいですね...。失敗してもいい時に勉強になったのでヨシ!ということで


どうでもいい独り言

「mergeのコマンドを上手く使えば、1ラインで書けそうだと思ったのですが、前・後でmergeしたいbranch書き間違えてミスってしまう人的災害?を防ぐために、各実行を適宜するやり方がデフォルトで採用されているのかもと思ったりしました」

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0