Git Pull と Git Pull Origin Master の違い
git pull
と git pull origin master
の違いについて説明します。 これらのコマンドを使用して、リモート リポジトリからローカル ブランチに変更を統合します。
ただし、後で説明するように、各コマンドの動作は異なり、ユース ケースも異なります。
git pull
と git pull origin master
の違い
git pull
コマンドが 2つのコマンドを組み合わせていることはおそらくご存知でしょう。
git fetch
コマンドgit merge Fetch_Head
コマンド
したがって、git pull
コマンドはリモート リポジトリから変更を取得し、それらをチェックアウト ブランチの先端にマージします。 コマンドが機能するには、ローカル ブランチにリモート追跡ブランチが必要です。
リモート追跡ブランチは、ローカル ブランチがプルして変更をプッシュするブランチです。 ブランチにリモート追跡ブランチがない場合、コマンドは失敗します。
一方、git pull origin master
は、リモートの master
ブランチから変更を取得し、現在立っているブランチに変更をマージします。
両方のケースの例を見てみましょう。
feature
ブランチでチェックアウトされていると仮定しますが、ブランチにはリモート追跡ブランチがありません。 git pull
コマンドを実行するとどうなりますか?
Git に以下のメッセージが表示されます。
リモートの feature
ブランチがない場合は、リモートの master
ブランチから直接変更を取得できます。 ここで、git pull origin master
コマンドの出番です。
コマンドを実行すると、次のようになります。
これは feature
ブランチのみを更新し、master
ブランチは更新しないことに注意してください。 master
ブランチでチェックアウトした場合、コマンドは master
ブランチを更新します。
master
ブランチを更新する場合は、master
に切り替えて、以下に示すように git merge
コマンドを実行します。
$ git merge Fetch_Head
Fetch_Head
は、リモート リポジトリからフェッチされたものを追跡する参照です。
簡単に言うと、git pull
および git pull origin master
コマンドは、リモート リポジトリからの変更を現在のローカル ブランチに統合します。 git pull
コマンドでは、ブランチにリモート追跡ブランチが必要です。
git pull origin master
コマンドを呼び出すと、リモートの master
ブランチから変更がフェッチされ、現在チェックアウトされているブランチにマージされます。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn