Follow twitter

Git pull fetch merge (pull=fetch + merge)

前回Gitのpullについて説明しました。
今回はpullについてもう少し詳しく説明します。

前回pullについて説明しました。詳細はこちら

pullはGithub上のリモートリポジトリで変更があった場合に
自分のローカルに反映させるコマンドです。

pull=fetch+merge

pullは実際2段階の工程をまとめて実施していることになります。

今までリモートリポジトリとローカルリポジトリの2つについて述べてきました。
例えばリモートのリポジトリの履歴をリモートブランチ、
ローカルの履歴をローカルブランチとすれば、ローカルには
リモート情報を追跡する別ブランチが存在します。

fetchは取り込むということで、リモートブランチにローカルにある
リモート追跡ブランチに取り込みます。(変更内容を反映させる)

その後、リモート追跡ブランチをローカルブランチにmergeさせることで、
ローカルブランチに取り込むことができます。

fetchでリモートブランチをリモート追跡ブランチに取り込む

fetchコマンドを用いてGithubのclone元に変更があった場合、
その情報を取得してリモートブランチからリモート追跡ブランチに取り込みます。

$ git fetch "リモート名" "ブランチ名"

デフォルトではリモート名はorigin ブランチ名はmasterとなります。

$ git fetch origin master

merge origin/masterでリモート追跡ブランチからローカルブランチに取り込む

リモート追跡ブランチのブランチ名はorigin/masterと表記します。

$ git merge origin/master

上記コマンドで追跡ブランチ(origin/master)をローカルブランチに取り込みます。

終わりに

pull=fetch+merge

つまり、
git pull origin master = git fetch origin master + git merge origin/master
ということになります。

pullの概念が分かればGitの理解も少し深まりますね。

Have a nice Git life!