[解決済み] ブランチが存在しないGitコミットの一覧表示と削除(dangling?)
質問
Git リポジトリにたくさんのコミットがあり、特定のブランチには属していないのですが、次のようなことができます。
git show
しかし、それらを含むブランチをリストアップしようとすると、何も報告されません。
これはダングリングコミット/ツリーの問題(-Dブランチの結果)だと思ったので、レポをプルーニングしましたが、その後も同じ動作が見られます。
$ git fetch origin
$ git fsck --unreachable
$ git fsck
出力もなく、何もぶら下がらない(よね)。しかし、コミットは存在します
$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ...
というように、どのブランチを通しても到達できない。
$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042
は何も出力しません。
そのコミットの状態は一体どうなっているのでしょうか?同じような状態のコミットをすべてリストアップするにはどうしたらいいでしょうか? そのようなコミットを削除するにはどうすればいいのでしょうか?
解決方法は?
<ブロッククオート出力されない、ぶら下がらない(だろう?)
reflogから参照されたコミットは到達可能であるとみなされることに注意してください。
<ブロッククオートそのコミットは具体的にどのような状態なのでしょうか?同じような状態を持つコミットをすべてリストアップするにはどうすればよいですか?
パス
--no-reflogs
を説得する
git fsck
を表示させることができます。
このようなコミットを削除するにはどうすればよいですか?
reflogのエントリーが期限切れになると、それらのオブジェクトも
git gc
.
有効期限は、以下のように規定されています。
gc.pruneexpire
,
gc.reflogexpire
および
gc.reflogexpireunreachable
を設定します。参考までに
git help config
.
デフォルトはすべて非常に合理的です。
関連
-
[解決済み】GitHubで空のブランチを作成する
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Gitブランチをmasterにマージする最も良い(そして最も安全な)方法は何ですか?
-
[解決済み] Git のブランチの一覧を最新のコミット順に表示するにはどうしたらよいですか?
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Git におけるブランチのトポロジーを可視化する
-
[解決済み] 他のgitリポジトリからコミットをチェリーピックすることは可能ですか?
-
[解決済み】Gitで複数のコミットの著者名やコミッター名、Eメールを変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
git commit リモートエラー [rejected] master -> master (フェッチファースト)
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] リモートタグを削除する方法を教えてください。