ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Git 用語を理解する 3 つの軸
Git の用語は (1) 場所(リポジトリ / ワーキングツリー / インデックス)、(2) 状態を指すポインタ(HEAD / ブランチ / タグ)、(3) 操作(merge / rebase / fetch ...)の 3 軸で覚えると整理しやすくなります。
場所に関する用語
| 用語 | 意味 | 覚え方 |
|---|---|---|
| Repository (リポジトリ) | Git で管理する 1 プロジェクト分のデータ全体。コミット履歴、ブランチ、設定が .git/ 配下に | 「貯蔵庫」。git init で作る |
| Working Tree (ワーキングツリー) | 編集中のファイルが置かれている実際のディレクトリ | 「机の上」 |
| Index / Staging Area | コミット予定の変更を貯める領域。git add で追加、git commit で確定 | 「コミット直前の控え室」 |
| Bare Repository | ワーキングツリーを持たないリポジトリ。サーバ用 | GitHub のサーバ側はベアリポジトリ |
| Remote (リモート) | 外部に置かれたリポジトリ(GitHub 等)の URL の別名 | git remote -v で確認 |
コミットとポインタ
| 用語 | 意味 | 備考 |
|---|---|---|
| Commit (コミット) | ある時点のスナップショット + 親コミット + 作者 + メッセージ | SHA-1 ハッシュ(40 文字)で識別。先頭 7 文字で省略可 |
| SHA-1 Hash | コミット ID。例: 4f1e2a8b... | 内容で決まるので改ざん検知になる |
| HEAD | 現在チェックアウトしている地点へのポインタ | 通常はブランチ名を指す(シンボリック参照) |
| Detached HEAD | HEAD がブランチではなく特定コミットを直接指す状態 | そのままコミットすると孤立する |
| Branch (ブランチ) | 特定コミットを指す動くポインタ。新コミットで自動前進 | refs/heads/<name> |
| Tag (タグ) | 特定コミットを指す動かないポインタ。リリース版に | refs/tags/<name> |
| Annotated Tag | タグ自体に作者・日時・メッセージを持つタグ | git tag -a v1.0 -m "Release 1.0" |
| Lightweight Tag | 単なるコミットへのポインタ | git tag v1.0 |
リモート関連
| 用語 | 意味 |
|---|---|
| Origin | git clone したリモートの慣習名。リモート 1 個目のデフォルト名 |
| Upstream | 追跡対象のリモートブランチ、または OSS でフォーク元リポジトリ |
| Tracking Branch | リモートブランチを追跡するローカルブランチ(git branch -vv) |
| Remote-tracking Branch | リモートの状態を反映する読み取り専用ローカル参照(origin/main) |
| Refspec | ローカルとリモートの参照のマッピング指定。+refs/heads/*:refs/remotes/origin/* |
同期系の操作
| 用語 | 動作 |
|---|---|
| Clone | リモートを丸ごとローカルに複製 |
| Fetch | リモート最新を取得(ローカルブランチは未変更、origin/main 等が更新) |
| Pull | fetch + merge(または fetch + rebase)の合成コマンド |
| Push | ローカルのコミットをリモートへ送信 |
| Force Push | 履歴を上書きする push。--force-with-lease を推奨 |
履歴を統合する操作
| 用語 | 動作 | 履歴形 |
|---|---|---|
| Merge | 2 系列のブランチを統合。3-way マージ。マージコミットを作る | 分岐が残る |
| Fast-forward Merge | 分岐がなければ単にポインタを進めるだけ | 直線 |
| Rebase | ブランチのコミットを別の基点の上に積み直す | 直線化 |
Interactive Rebase (-i) | コミットを編集 / 順序入替 / squash | 整形済 |
| Cherry-pick | 特定のコミットだけ取ってきて適用 | 新コミット作成 |
| Squash | 複数コミットを 1 つに統合(rebase の -i 内で操作) | 1 コミット化 |
履歴を巻き戻す系
| 用語 | 動作 | 用途 |
|---|---|---|
| Reset | HEAD と(必要なら)インデックス・ワーキングツリーを過去のコミットに戻す | 「無かったことに」 |
| Revert | 指定コミットを打ち消す新しいコミットを作る | 履歴を残しつつ取り消し |
| Reflog | HEAD の動きを記録するログ。reset で失った変更も取り戻せる | git reflog |
| Checkout | ブランチ切替 or ファイル復元(Git 2.23+ は switch / restore 推奨) | 切替・復元 |
| Restore | checkout の「ファイル復元」専用版(Git 2.23+) | 明確な意図 |
| Switch | checkout の「ブランチ切替」専用版(Git 2.23+) | 明確な意図 |
差分系
| 用語 | 意味 |
|---|---|
| Diff | 差分。git diff でワーキングツリーとインデックスの差、--cached でインデックスと HEAD |
| Conflict (コンフリクト) | マージ時、同じ部分を両方が変更していたため自動統合できない状態 |
| Conflict Marker | <<<<<<< HEAD ... ======= ... >>>>>>> branch |
| Blame | 各行を誰がいつ変更したか表示(git blame <file>) |
退避・複数チェックアウト系
| 用語 | 意味 |
|---|---|
| Stash | 作業中の変更を一時退避(git stash で push、pop で復元) |
| Submodule | 別の Git リポジトリを自リポジトリに埋め込む。バージョンを固定追跡 |
| Worktree | 1 つのリポジトリから複数のワーキングツリーを切り出す(git worktree add) |
| Sparse Checkout | 巨大リポジトリで一部のディレクトリだけチェックアウト |
その他重要用語
| 用語 | 意味 |
|---|---|
| .gitignore | 追跡対象から除外するファイル / フォルダ |
| Hook | 特定タイミングで自動実行されるスクリプト(.git/hooks/) |
| Pull Request (PR) / Merge Request (MR) | GitHub / GitLab 上のレビュー & マージ依頼。Git 本体の機能ではない |
| Fork | GitHub 上で他人のリポジトリを自アカウントにコピーする操作。Git 本体の機能ではない |
| Pack File | 複数のオブジェクトを圧縮した .git/objects/pack/ のファイル |
| Object | Git の内部単位(blob / tree / commit / tag の 4 種) |
| Blob | ファイル内容のスナップショット |
| Tree | ディレクトリ構造を表現するオブジェクト |
コマンドと用語のマッピング
# Working Tree → Index に「ステージング」
git add file.txt
# Index → Repository に「コミット」
git commit -m "msg"
# Repository → Remote に「プッシュ」
git push origin main
# Remote → Repository に「フェッチ」
git fetch origin
# Remote → Repository → Working Tree に「プル」(fetch + merge)
git pull origin main
# 現在の状態を全部見る
git status # Working / Index / HEAD の差
git log # コミット履歴
git reflog # HEAD の動き履歴
git branch -vv # ブランチと追跡関係
覚えにくい用語のミニまとめ
- Origin と Upstream の違い: 単独リポジトリなら同じことが多い。フォーク開発では
origin= 自分のフォーク、upstream= 本家。 - Fetch vs Pull: fetch は取得だけで安全、pull は取得 + 統合。
- Reset vs Revert: reset は履歴を消す、revert は打ち消しコミットを足す(履歴を残す)。
- Merge vs Rebase: merge は履歴が分岐、rebase は履歴を直線化(プッシュ済を rebase してはいけない)。
- Tag vs Branch: branch は動く、tag は動かない(特定リリースの目印)。
FAQ
Q: Detached HEAD でコミットしてしまった、どう救う?
A: その場で git branch rescue でブランチを生やす。または git reflog でコミット SHA を確認し、新しいブランチを生やす。
Q: SHA-1 は衝突しない?
A: 理論上は衝突しうるが、Git は内容アドレスとして 160 ビット使うので実用的には衝突は無視可能。Linux Kernel / 大規模 OSS でも問題なく稼働。新規プロジェクトは SHA-256 サポートも始まっている。
Q: タグとブランチ、どちらでリリースを管理?
A: リリース版はタグ(動かない)、開発中はブランチ(動く)。v1.0.0 のような Semantic Versioning のタグが定石。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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」の状態
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?