ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?