git fsck
git
書き方
git fsck [--lost-found] [--unreachable]オブジェクトデータベースを検査し、誰も指していないコミットを教えます。reflogの記録が消えた後に失った作業を探す二番目の手段で、報告はしますが修復はしません。
よく使うオプション
| オプション | 意味 |
|---|---|
| --lost-found | write dangling objects into .git/lost-found |
| --unreachable | list objects no ref points at |
| --dangling | list objects nothing at all refers to |
| --full | check packs and alternates too |
| --connectivity-only | skip the expensive object checks |
| --no-reflogs | do not treat reflog entries as roots |
例
git fsck --lost-foundrecovers commits after a reset when the reflog is gone
git fsck --unreachablelists commits nothing points at any more
git fsck --connectivity-onlya 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