2
git version 1.7.11.4

ぶら下がっているブロブ/コミットを取り除く安全な方法はありますか? うっかり削除してしまわないか心配です。

git fsck
Checking object directories: 100% (256/256), done.
Checking objects: 100% (13017/13017), done.
dangling blob 6b9542f29f534b377f9ad280d6d342a4114146ec
dangling blob 0d1779fc8bac49a45b216e1891345b7f69ee068c
dangling blob f8ae5bad210ac84d66d28cb723dcad5b3f325bff
dangling blob e84f8c37c239bc591a52b1169669fb8f593b39b2
dangling blob 5d605b5d6ca0c7cb8d1bc05607eefada2092219b
dangling blob 9363f36de455d504cba3e78fbfb0cb133292fe55
dangling blob 0df63ff9133cc21b45a417958cb012689ebdc4cd
dangling commit fe764632c9d283b558f1326c56f940b3f3aea931
dangling blob b67bedfd9682fbc84f38d44b5112087dff004adc

私は次のことを試しました:

git gc --auto
git clean -f
4

1 に答える 1

2

まず、reflogすべてのブランチ履歴を追跡する があります。デフォルトでは 90 日です (gc.reflogExpire)。gc.reflogExpireUnreachable30日のものもあります。したがって、ブランチで作成した場合reset、ダングリング コミットは 30 日間ここにあり、 経由でアクセスできますfsck

また、デフォルトで 2 週間後にダングリング オブジェクトをドロップするガベージ コレクターのプルーニング設定があります ( gc.pruneExpireconfig 設定)。

リポジトリからオブジェクトを一掃する方法については、ここで他の質問を読むことができます

clean追跡されていないファイルを作業コピーから削除します。これは、ブロブ/コミットとは関係ありません。

于 2012-09-12T09:59:40.360 に答える