git pull – リモートの変更を取得して統合するコマンド

リポジトリ管理
スポンサーリンク

git pull コマンドは、リモートリポジトリの更新を取得して現在のブランチに統合するコマンドです。
内部的には git fetch + git merge が行われます(オプションにより rebase も可能)。

構文(Syntax)

git pull [オプション] [リモート名] [ブランチ名]

主なオプション一覧

オプション説明使用例
(なし)現在のブランチの追跡先から取得してマージgit pull
<リモート> <ブランチ>指定リモート・ブランチを取得して統合git pull origin main
--rebaseマージの代わりにリベースを実行git pull --rebase origin main
--ff-onlyFast-forward のみ許可(競合があればエラー)git pull --ff-only
--no-commitマージコミットを作成するが、まだコミットしないgit pull --no-commit origin develop
--all登録されているすべてのリモートから取得git pull --all

実行例

基本的なプル(fetch + merge)

git pull

出力例:

Updating abc123..def456
Fast-forward
 file1.txt | 2 ++

リモートとブランチを指定して取得

git pull origin develop

リベースして統合

git pull --rebase origin main

Fast-forward のみ許可

git pull --ff-only origin main

マージは行うがコミットしない

git pull --no-commit origin feature-x

すべてのリモートから取得

git pull --all

コンフリクト発生時の例

git pull origin main

出力例:

Auto-merging app.py
CONFLICT (content): Merge conflict in app.py
Automatic merge failed; fix conflicts and then commit the result.

解決後:

git add app.py
git commit

エラー例(リポジトリ外で実行)

git pull

出力例:

fatal: not a git repository (or any of the parent directories): .git

関連コマンド

  • git fetch : リモートの更新を取得するが統合はしない。
  • git merge : 他のブランチを現在のブランチに統合する。
  • git rebase : 更新をリベース方式で取り込む。

備考

  • git pull のデフォルト動作は fetch + merge ですが、設定で fetch + rebase に変更することも可能: git config --global pull.rebase true
  • git pull は便利ですが、変更が競合しやすいため、大規模開発では git fetchgit merge を分けて実行する運用も推奨されます。
  • CI/CD など自動化スクリプトでは --ff-only を利用すると安全です。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント