🐷

【Git】デフォルトブランチより更新が遅れているリモートブランチをローカルにpullする

2024/01/27に公開

こんにちは、りょうです。本記事ではGitで最新の変更が取り込まれていないブランチをローカルにpullする(表現が適切かは微妙です)際に、これまで知らなかったコマンドとGitについて学びが深まったので、そのことについてまとめていきます。

シナリオとしては、以下の通りです(図を見たほうがわかりやすいと思います。)

  1. developブランチ(デフォルトブランチ)からfeatureブランチをはやして開発を進めている
  2. developブランチにfeatureブランチをマージしている状態
  3. 一方、masterブランチ(本番環境)にはまだdevelopブランチをマージしていない
  4. この状況でまだローカルにmasterブランチがないのでリモートのorigin/masterをローカルに取り込みたい。

ブランチについて理解していれば上記のようなケースも簡単に解決できるんですね。

結論

git fetch origin master:master

上記のコマンドでリモートのmasterブランチから直接新しいローカルのmasterブランチを作成し、リモートの状態をそのままローカルに反映できます。

そもそもfetchは何をしているのか?

git featch origin master
  • git fetchではリモートのmasterブランチからの最新の変更をローカルに取り込んでいる
  • ローカルに反映が必要なら、git merge origin/masterを実行
  • fetchとmergeをまとめてやっているのがgit pull

別の方法(コマンド)

  1. リモートのmasterブランチの最新情報を取得する
    下記のコマンドで、リモートのmasterブランチの最新情報をorigin/masterというリモート追跡ブランチに反映しています。
git fetch origin master
  1. 新しいローカルmasterブランチを作成する
    下記のコマンドで、origin/masterブランチをベースに新しいローカルmasterブランチを作成します。
git branch master origin/master
  1. 新しく作成したmasterブランチに切り替える
git switch master

まとめ

今回もgitについてのちょっとした学びを簡単な記事にしました。git fetchはあまり使用しないので、理解が足りていませんでした。

引き続きちょっとつまずいた点があったら、自分のメモ的な要素も兼ねて記事にしていきます。

この記事がどなたかの参考になれば幸いです。最後まで読んでいただきありがとうございました。

Discussion