ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本: git pull コマンド
リモートリポジトリの最新変更をローカルブランチに取り込む基本コマンド:
# リモート (origin) の main ブランチをローカル main にマージ
git pull origin main
# upstream が設定済なら省略可
git pull
# rebase で取り込む(マージコミット作らない)
git pull --rebase
# fast-forward only(マージできなければエラー)
git pull --ff-only
git pull の中身: fetch + merge
git pull は実は 2 つのコマンドの組み合わせです:
# git pull origin main は内部的に以下と同じ
git fetch origin main # リモート最新を取得(ローカルブランチには反映しない)
git merge origin/main # 取得した内容を現在のブランチにマージ
# --rebase オプションの場合
git fetch origin main
git rebase origin/main
動作の違い:
| コマンド | 動作 | ローカル変更 |
|---|---|---|
git fetch | リモート最新を取得のみ | 影響なし(安全) |
git pull | fetch + merge | 現在のブランチに自動マージ |
git pull --rebase | fetch + rebase | ローカルコミットをリモートの上に積み直す |
典型的な作業フロー
# 1. 作業前にリモート最新を取り込む
git checkout main
git pull origin main
# 2. ブランチを切って作業
git checkout -b feature/new-login
# ... 編集・コミット ...
git add .
git commit -m "Add login feature"
# 3. push 前にリモート最新を取り込む(コンフリクト早期検知)
git pull --rebase origin main
# 4. push
git push origin feature/new-login
未コミット変更があるときの pull
ローカルに未コミット変更があり、リモート最新が同じファイルを変更している場合 → pull できません:
error: Your local changes to the following files would be overwritten by merge:
src/Login.php
Please commit your changes or stash them before you merge.
Aborting
対処2 通り:
# 方法 A: stash で一時退避
git stash # 変更を退避
git pull origin main # pull
git stash pop # 退避を戻す(コンフリクト出る可能性あり)
# 方法 B: 先にコミット
git add .
git commit -m "WIP: 作業中"
git pull --rebase origin main # rebase で履歴を直線化
コンフリクトが出たとき
同じファイルの同じ行を両者が変更していた場合、Git は自動マージできずコンフリクトになります:
Auto-merging src/Login.php
CONFLICT (content): Merge conflict in src/Login.php
Automatic merge failed; fix conflicts and then commit the result.
該当ファイルを開くと:
<<<<<<< HEAD
$user = User::find($id); // ← ローカルの変更
=======
$user = User::findOrFail($id); // ← リモートの変更
>>>>>>> origin/main
解決手順:
# 1. ファイルを編集してマーカーを削除
# どちらか or 両方を残す形に修正
# 2. 解決済としてマーク
git add src/Login.php
# 3. マージコミット作成(merge の場合)
git commit
# rebase 中の場合
git rebase --continue
# rebase をやめたい場合
git rebase --abort
# merge をやめたい場合
git merge --abort
pull の代わりに fetch + merge を分けて実行
慣れてくるとpull せずに fetch + mergeを分けて実行する方が安全と気付きます:
# 1. リモートを取得(ローカルブランチには影響なし)
git fetch origin
# 2. 差分を確認
git log HEAD..origin/main --oneline
git diff HEAD origin/main
# 3. 安全と判断したらマージ
git merge origin/main
# または rebase
git rebase origin/main
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
fatal: refusing to merge unrelated histories | 履歴が無関係のリポジトリ | git pull --allow-unrelated-histories |
error: pathspec 'main' did not match | リモートに main ブランチが無い(master の可能性) | git pull origin master |
| 毎回マージコミットが増える | pull がデフォルト merge | git config --global pull.rebase true |
Your branch is ahead of 'origin/main' by N commits | push 忘れ | git push |
FAQ
Q: pull と fetch、どちらを使うべき?
A: 初心者は pull、慣れたら fetch + merge を分けると安全です。チームで運用するなら pull --rebase を推奨。
Q: pull で勝手にマージコミットができるのを防ぎたい
A: git config --global pull.rebase true で常に rebase 動作。または git config --global pull.ff only で fast-forward only。
Q: 強制的にリモートと同じ状態にしたい(ローカル変更全捨て)
A: git fetch origin && git reset --hard origin/main。未コミット変更は消えるので注意。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- 用語一覧
- エラー一覧
- git本体のインストール(Linux)
- Linuxサーバーへのgit導入とクライアントのセットアップ
- リモートリポジトリをローカルリポジトリとしてクローンする方法
- リモートとローカルのリポジトリを同期(pull)する方法
- 設定の確認
- gitユーザー名とemailの設定
- リモートリポジトリの作成
- ローカルリポジトリの作成
- 新規ファイル/ディレクトリをインデックスに登録
- インデックスの登録状態を確認
- ローカルリポジトリの変更をコミット
- コミット履歴の確認
- クライアントからリモートリポジトリの接続設定、確認、削除
- リポジトリへのプッシュ
- リモートリポジトリからクライアントへのSSHクローン
- リモートとローカルの差分表示
- バージョンの確認
- プロキシの設定
- ローカルをリモートリポジトリの状態に戻す
- ブランチの作成, 一覧表示, 切り替え
- ブランチのマージと削除
- リベース
- .gitignoreの書き方
- .gitignoreの設定が反映されない場合
- 特定のファイルをgitの管理から外す方法
- 参照(ORIG_HEAD, HEAD, FETCH_HEAD)
- git rm [-r --cached] の取り消し
- 一部のディレクトリ/ファイルのみをリポジトリから復元する方法
- ローカルとリモートリポジトリの有無を同期
- pushの取消し方法
- マージツールの起動方法
- Gitで「MERGING」の状態a
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Unity Editor 画面と各ウィンドウの解説完全ガイド 2026-05-17 15:24:27
- UE5「古い HLOD アクタを検出」の対処法完全ガイド 2026-05-17 15:24:27
- Unity C# でよく使うクラス一覧完全リファレンス 2026-05-17 15:24:27
- Django ルーティング (URLconf) 作成完全ガイド 2026-05-17 15:24:27
- UE Niagara にコリジョンを持たせる方法完全ガイド 2026-05-17 15:24:27
- Unity ヒエラルキーウィンドウの使い方完全ガイド 2026-05-17 15:24:27
- Unity でオブジェクトの移動・回転を制御する完全ガイド 2026-05-17 15:24:27
- Visual Studio フォームのタブ順序変更完全ガイド 2026-05-17 15:24:27
- NumPy 配列の作成方法完全ガイド 2026-05-17 15:24:27
- NumPy で多次元配列を 1 次元に変換する方法完全ガイド 2026-05-17 15:24:27
- PHP フレームワーク完全比較 — Laravel/Symfony/CodeIgniter 2026-05-17 15:24:26
- Windows コマンドプロンプトの開き方完全ガイド — Win+R / 管理者 / Terminal 2026-05-17 15:24:26
- Node.js の Windows インストール完全ガイド — 公式 / nvm-windows / Chocolatey / winget 2026-05-17 15:24:26
- TCP/UDP ポート番号完全リファレンス 2026-05-17 15:24:26
- C# 入門 — .NET エコシステムと現代の C# 言語 2026-05-17 15:24:26
コメントを削除してもよろしいでしょうか?