純粋に投機的なコミットがあり、うまくいかなかったとします。私はそれを維持したいと思いますが、私は参考にしたくありません(私は、ブランチやタグを「ワン・シングル・スペキュレーション・コミット」とは言いたくありません。私は支店名を「投機的」にして、すべてのコミットをその中に入れることができますが、コミットは完全に無関係であり、コミットとその親との間のつながりは不合理です。本質的には、gcによって削除されないコミット用のsha1 idsをリストアップすることができるようにしたいと思いますが、それぞれについてrefを必要としません。それを行うには良い方法は何ですか? (gc.pruneExpireを高い値に設定することは望ましくありません。なぜなら、プルーニングしたいだけなので、参照されていないコミットの特定のセットを保持したいからです。)つまり:コミットが決して削除されないようにするにはどうすればよいですか?
完全に無関係なコミットのコレクションを参照する良い方法はありますか?
'git fsck'に' HEAD'を渡しません。これは、HEADの外側にコミットがあれば、ダンプすることになります。代わりに 'git fsck --unreachable'を実行するほうがいいです – bdonlan
+1:私はこれをmipadiの答えの代案として提案しようとしていました。いくつかの注意点があります.SHA1だけでなく、REFの実名を後で伝える必要があります。それらはブランチやタグのように、それらの名前空間のすぐ外側にあります。他の参考文献と同様に、記述的に名前を付けてください。 'git for-each-ref refs/speculative/*'を使ってそれらをリストすることもできます。 – Cascabel
私は一意性を保証し、名前を付けるのに必要な労力を最小限に抑えるために、名前としてsha1を使用することに決めました。それらを区別することは、各コミットメッセージの最初の行をリストすることで十分です。 –