11

gitで何かをする最初の試みでは、GitHubforWindowsを使用しました。シンプルで非常に原始的なツールなので、SmartGitを試してみることにしました。周りを見回していると、テストに残り物があることに気づきました。これは「失われた頭」と呼ばれるものです。どうすればこのゴミを取り除くことができますか?どうやら

git gc --prune=now

または同様のものが機能するはずですが、何も変更されていません。私はグーグルを試しましたが、誰もが逆のことをしようとしていました-失われた頭などから失われたコミットを復元します。

4

2 に答える 2

10

マニュアルページによるとgit gc、「reflogs」(.git/logs/<ref-name>リポジトリ内のファイル)を介して参照されるファイルをガベージコレクションしません。これらのHEADは、SmartGit / Hgが表示するものとまったく同じであり、これらのログを削除する場合、参照されていないコミットはによって収集される必要がありますgit gc --prune=now

警告これらのコミットを完全に取り除く(機密データの削除など)本当に正当な理由がない限り、そうすべきではありません-おそらくしばらくして、これらのコミットの1つだけに興味があるかもしれません。少なくとも、私の意見では、ディスクスペースを再利用することは正当な理由ではありません。

于 2013-02-23T19:51:04.103 に答える
0

これは単なるもの以上のものを削除しますgit gc --prune=now

git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c gc.rerereresolved=0 \
-c gc.rerereunresolved=0 -c gc.pruneExpire=now gc "$@"

ソース:https ://stackoverflow.com/a/14728706/1069083

于 2018-07-11T05:43:56.460 に答える