gitコマンドの使い方 ~ git pull ~

git pull コマンド概要

git pullはremoto-repository(リモートリポジトリ)のデフォルトブランチが示すcommitから遡って取得したcommitをlocal-repository(ローカルリポジトリ)のrepository(リポジトリ)に反映する。

また、local-branch(ローカルブランチ)にremote-branch(リモートブランチ)をマージします。つまり、「git fetch」と「git merge」を同時に実行するコマンドです。

git pullコマンドは便利なコマンですが、コマンドの動作をしっかりと理解していない場合は、git fetchとgit mergeを別々に実行しましょう。

git pullはgit fetchとgit mergeを同時に行うため、git mergeでコンフリクトが発生しない(fast-forward-merge)の場合のみ利用することをお勧めします。

コマンドの使い方

git pull [remote-repository] [remote-branch]:[local-branch]

remoto-repository(リモートリポジトリ)やブランチを指定しない場合はremote-tracking-branch(リモート追跡ブランチ)に登録された内容でpullされます。

例として、remote-repositoryにcommitが3つあり、local-repositoryにcommitが2つある状態で、masterブランチを指定してpullしてみます。

(master)
$ git log --oneline --all
72e4b34 (HEAD -> master, origin/master) commit-B
fd16912 commit-A

(master)
$ git pull origin master
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 676 bytes | 39.00 KiB/s, done.
From https://github.com/xxx/pulltest
 * branch            master     -> FETCH_HEAD
   72e4b34..fb0435d  master     -> origin/master
Updating 72e4b34..fb0435d
Fast-forward
 file-C.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 file-C.txt

(master)
$ git log --oneline --all
fb0435d (HEAD -> master, origin/master) commit-C
72e4b34 commit-B
fd16912 commit-A

git pull の全てのオプションを確認する方法

以下のコマンドを実行するとブラウザでgit pullのヘルプページが表示される

git pull --help

Gitコマンドの使い方一覧

Git設定git config ~Gitリポジトリの設定~
初期化git init ~ローカルリポジトリの構築~
ログ&設定値確認git log ~commitログの履歴確認~
git status ~作業ディレクトリとステージングエリアの更新状態確認~
git diff ~commitやファイルの差分確認~
git show ~commitの内容確認~
git remote ~リモート追跡ブランチのリモートリポジトリの設定確認~
git reflog ~HEADやブランチの移動履歴の確認と整理~
ステージングエリアの操作git add ~ステージングエリア(インデックス)にファイル追加~
git ls-files ~ステージングエリア(インデックス)のファイル一覧表示~
git rm ~ステージングエリア(インデックス)のファイル削除~
ローカルリポジトリの操作git commit ~blobやtreeなどをまとめたcommitを作成~
git merge ~指定したブランチの内容を取り込み新しいcommitを作成~
git rebase ~commitの履歴の整理~
git cherry-pic ~特定のcommitの変更内容だけを取り込む~
git cat-file ~リポジトリのオブジェクト(commit,tree,blob)の内容表示~
git revert ~指定したcommitを取り消すcommitを作成~
commitのエイリアスなどgit branch ~commitツリーの枝(ブランチ)を作成~
git tag ~リリースなどのタイミングで特定のcommitに名前を付ける~
git stash ~commitを作成する前の変更内容を一時保存~
commitの内容をステージングエリアや作業ディレクトリに反映git checkout ~commitをステージングエリアと作業ディレクトリに展開~
git reset ~HEADの位置やステージングエリアと作業ディレクトリの内容を変更~
リモートリポジトリとのやり取りgit clone ~リモートリポジトリからローカルリポジトリ作成~
git fetch ~リモートリポジトリのブランチをローカルリポジトリに反映~
git pull ~git fetchとgit mergeを同時に行う~
git push ~ローカルリポジトリのブランチをリモートリポジトリに反映~