![見出し画像](https://assets.st-note.com/production/uploads/images/64035218/rectangle_large_type_2_9903075b1da77fd56af562c2e9ec1bef.png?width=1200)
Gitのリモート追跡ブランチを理解する
gitを使うようになってからしばらく経ちますが、gitに関する記事などではしばしばこの「リモート追跡ブランチ」についての説明が省略されているなぁと感じたので、ここにまとめておこうと思います。
この投稿では、fetch・merge・pull・push4種類のコマンドを扱いながら、「リモート追跡ブランチ」 の理解を目指します。
それぞれのコマンドについて(概要)
・git fetch
リモートリポジトリの内容をリモート追跡ブランチに反映する。
・git merge
リモート追跡ブランチの内容をローカルブランチに反映する。
・git pull
リモートリポジトリの内容をローカルブランチに反映する。
(fetch + merge と同じ)
・git push
ローカルブランチの内容をリモートリポジトリ及びリモート追跡ブランチに反映する。
もう少し詳しく説明していきます。
git fetch
git fetchではリモート追跡ブランチだけを更新するので、手元にあるソースコードはまだ変化しません。
次にコマンドの説明です。
<リポジトリ名>のところにリモートリポジトリにあるリポジトリ名を入れれば、更新するリポジトリを限定することが可能です。
git fetch <リポジトリ名>
git merge
git mergeではリモート追跡ブランチの内容をローカルブランチに反映するので、手元のソースコードも更新されます。
次にコマンドの説明です。
上の図だと、<リモート追跡ブランチ名>はorigin/masterとなります。現在いるブランチに指定したリモート追跡ブランチの内容を反映します。
git merge <リモート追跡ブランチ名>
git pull
git pullではgit fetchとmergeの操作をまとめて行います。gitの仕組みを理解する上ではあまり使わない方がいいと思います。
git push
git pushではローカルブランチの内容をリモートブランチ及びリモート追跡ブランチに反映します。変更内容はリモートリポジトリだけでなく、origin/masterにも影響することに注意しましょう。
次にコマンドの説明です。
上の図だとgit push origin masterになりますが、通常masterには直接pushはしません。代わりにmaster以外のブランチを作成し、そのブランチにpushした後、masterへマージするためにプルリクエストを作成します。
git push <リモート名> <ブランチ名>
まとめ
今回は、個人的にgitの理解に大きく影響すると感じた部分をまとめてみました。
この記事が気に入ったらサポートをしてみませんか?