【Git】fetch, merge, pullの基本的な使い方

fetch、pullで差分を取り込む

gitでfetch、pullコマンドを使用してリモートリポジトリの最新状態をローカルリポジトリに取り込む方法について解説します。

基本的に、チーム開発など複数人が同じリポジトリの同じブランチを操作する可能性を想定し、基本的にCUIによるコマンドラインツールでの操作方法と表示状態を見ていきます。

(例として本記事での作業対象ブランチ名はsub1とします)

fetch & mergeによる差分取り込み

(ローカルリポジトリ側)作業中のブランチで、リモートリポジトリ上の同ブランチに加えられている差分を確認します。

…と、その前に対象ブランチのリモート追跡ブランチを更新する必要があります。

「リモート追跡ブランチ」とは
リモート追跡ブランチとはリポジトリをクローンした際にローカルリポジトリ上に作成される、リモートリポジトリの状態を表すためのブランチのことです。

リモート追跡ブランチは、origin/ブランチ名 のようにorigin/の後ろに対象のブランチ名で表記されます。

origin/master
ブランチ「master」のリモート追跡ブランチ

origin/sub1
ブランチ「sub1」のリモート追跡ブランチ

リモート〜ローカル間の差分は直接の比較ではなく、都度更新されるこちらのブランチを介して行います。

また、リモート追跡ブランチは自動的に更新されるわけではなく、後述するfetchやpullコマンドを明示的に行うことによってリモートリポジトリ上の同名ブランチの状態が同期されるようになります。

fetchコマンドでリモート追跡ブランチを更新する

対象の作業ブランチに切り替え、以下のコマンドでフェッチ(fetch)を実行し、リモート追跡ブランチを最新の状態にします。

git fetch origin

リモートリポジトリが※正しく紐づけられていれば下記でもOK
※ git remote -v で pullとfetch対象のリモートリポジトリを確認できる

git fetch

リモート追跡ブランチ、origin/sub1 にリモートの最新状態が反映されている様子を確認できます。

From https://gitlab.xxx.com/username/git-lesson
   d4a4060..3dd6c09  sub1       -> origin/sub1

diffで差分確認

上記の方法でリモート追跡ブランチを最新の状態に更新することが出来たら、以下のコマンドを実行してリモート〜ローカル間の差分を比較します。

git diff sub1 origin/sub1

git diff 対象のローカルブランチ リモート追跡ブランチ

mergeで取り込み

差分の確認が出来たら、マージを実行して取り込みます。

git merge origin/sub1

git merge リモート追跡ブランチ

マージを実行し、成功している様子

Updating d4a4060..3dd6c09
Fast-forward
 sub1.txt | 1 +
 1 file changed, 1 insertion(+)

pullによる差分取り込み

git pullコマンドを実行することにより、リモート追跡ブランチの更新とローカルリポジトリへの反映を一度にまとめて行うことが出来ます。

プル (フェッチ + マージ)

git pull

取り込む前に差分を確認する必要がない場合などにこちらを利用します。

Follow me!

【Git】fetch, merge, pullの基本的な使い方” に対して1件のコメントがあります。

コメントは受け付けていません。