git fsck

git

書き方

git fsck [--lost-found] [--unreachable]

オブジェクトデータベースを検査し、誰も指していないコミットを教えます。reflogの記録が消えた後に失った作業を探す二番目の手段で、報告はしますが修復はしません。

よく使うオプション

オプション意味
--lost-foundwrite dangling objects into .git/lost-found
--unreachablelist objects no ref points at
--danglinglist objects nothing at all refers to
--fullcheck packs and alternates too
--connectivity-onlyskip the expensive object checks
--no-reflogsdo not treat reflog entries as roots

git fsck --lost-found

recovers commits after a reset when the reflog is gone

git fsck --unreachable

lists commits nothing points at any more

git fsck --connectivity-only

a quick structural check on a huge repository

取り消しに何通りもあるのが混乱のもとです — ブランチの指す先を動かすのと、打ち消すコミットを積むのは別です。

読み方

  • 角括弧 [ ] は省いてよい部分です。
  • 三点 … は複数並べられるという意味です。
  • オプションは大文字小文字を区別します — -r と -R が別物のコマンドもあります。

よくある質問

Q. git fsck は何をしますか。

オブジェクトデータベースを検査し、誰も指していないコミットを教えます。reflogの記録が消えた後に失った作業を探す二番目の手段で、報告はしますが修復はしません。

Q. どう打ちますか。

git fsck [--lost-found] [--unreachable] — 角括弧は省いてよい部分です。

Q. よく使うオプションはいくつですか。

ここにまとめたのは6個です。全部は man git にあります。このコマンドはgitの仲間です。

関連するコマンド

man ページ: man git-fsck