ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
結論: 最短コマンド
| やりたいこと | コマンド |
|---|---|
| ローカル変更を捨てて HEAD に戻す(1 ファイル) | git restore src/Login.php |
| ローカル変更を捨てて HEAD に戻す(ディレクトリ全体) | git restore src/ |
| 3 コミット前の状態に 1 ファイルだけ戻す | git restore --source=HEAD~3 src/Login.php |
| 削除したファイルを HEAD から復元 | git restore src/Deleted.php |
| 別ブランチからファイルだけ持ってくる | git checkout feature -- src/Foo.php |
| add 済を取り消す(unstage) | git restore --staged src/Login.php |
restore vs checkout の使い分け
Git 2.23(2019年)で、ややこしかった checkout を分割するために git switch(ブランチ切替)と git restore(ファイル復元)が新設されました。新規プロジェクトは restore を使うのが推奨です。
# 旧 (Git 2.23 未満時代も含めて広く動く)
git checkout HEAD -- src/Login.php
# 新 (Git 2.23+ 推奨、意味が明確)
git restore src/Login.php # 作業ツリーを index に戻す
git restore --source=HEAD src/Login.php # HEAD の内容に戻す
git restore --staged src/Login.php # add を取り消す
git restore --source=HEAD~3 src/Login.php # 3 つ前のコミット内容に戻す
git restore --source=feature src/Login.php # 別ブランチの内容に置換
シナリオ別レシピ
1) ローカル編集をうっかり破棄
# ファイル単位
git restore src/Login.php
# ディレクトリ単位
git restore src/
# 全変更を捨てる(注意)
git restore :/ # リポジトリルートから全部
git restore . # カレントディレクトリ以下
2) 削除したファイルを戻す
# 誤って rm したファイル
rm src/Important.php
# まだコミットしてないなら HEAD から戻せる
git restore src/Important.php
# 既にコミット済の削除を取り消したい
git restore --source=HEAD~1 src/Important.php
# 「いつ削除されたか」を遡る
git log --diff-filter=D --summary -- src/Important.php
# → 削除したコミットがわかる
git restore --source=<その1つ前のコミット> src/Important.php
3) 別ブランチからファイルだけ持ってくる
# feature-x ブランチの src/Login.php だけが欲しい
git checkout feature-x -- src/Login.php
# または
git restore --source=feature-x src/Login.php
# 持ってきたら自動で add 状態になっている(checkout の場合)
git status
git commit -m "feature-x の Login.php を取り込み"
4) add を取り消す(unstage)
# 旧
git reset HEAD src/Login.php
# 新 (Git 2.23+)
git restore --staged src/Login.php
# 全部 unstage
git restore --staged :/
sparse-checkout: 一部ディレクトリだけ clone
モノレポなど巨大リポジトリで「frontend ディレクトリだけ作業したい」というニーズに対応する機能。
# Git 2.25+ の cone モード(推奨)
git clone --filter=blob:none --no-checkout https://github.com/foo/monorepo.git
cd monorepo
# sparse-checkout を有効化
git sparse-checkout init --cone
# 必要なディレクトリを指定
git sparse-checkout set frontend docs/api
# 取得(指定ディレクトリ以外はファイル本体を取らない)
git checkout main
# 確認
git sparse-checkout list
# 後で範囲拡大
git sparse-checkout add backend
# 解除(全部チェックアウト)
git sparse-checkout disable
誤って ファイルを消してしまったら
# パターン1: git restore を実行直後に「やっぱり戻したかった」
# → 残念ながら restore は作業ツリーの未追跡変更を消すと復元できない
# パターン2: コミット済なら必ず救える
git reflog
# 過去の全 HEAD 移動が見える → ハッシュを使って復元
git restore --source=abc1234 path/to/file
# パターン3: 全部失った(dangling commit 探し)
git fsck --lost-found
# → .git/lost-found/commit/ にハッシュが並ぶ
git show <hash>
git restore --source=<hash> path/to/file
FAQ
Q: git checkout . と git restore . の違い
A: 動作はほぼ同じ(カレント以下のローカル変更を捨てる)。restore のほうが意味が明確で、checkout のような副作用(ブランチ切替)が起きない。
Q: --source を省略すると?
A: index(add した内容)を見ます。つまり「add していない変更だけ」を捨てます。--staged を付けると HEAD を見て unstage。
Q: 巨大バイナリの履歴も含めて clone を軽くしたい
A: git clone --filter=blob:none(partial clone)+ sparse-checkout の組み合わせが定番。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 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
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 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
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?