2

うまくいかなかった問題へのアプローチを試みていたブランチを作成したので、ブランチに対して行ったすべてのコミットを含めて、ブランチを削除したいと思います。議論のために、私のブランチは次のようになります(Gitkで表示した場合):

A--B--C--D Master
    \
     \-E-F Unwanted

私はそれをこのように見せたい:

A--B--C--D Master

不要なブランチを削除すると、代わりに次のようになります。

A--B--C--D Master
    \
     \-E-F

私はコミットEとFを使用する必要がなく、Gitの履歴が乱雑になることを望んでいません。

非常に単純な(そしておそらくばかげた)質問のように思われるかもしれないことについてお詫びしますが、私は他の場所で適切な答えを見つけることができませんでした。

4

2 に答える 2

5

いいえ、それだけです。EとFがブランチまたはタグで参照されていない限り、最終的にはガベージコレクションされます。私はあなたがそれをgitkで見ていて、まだコミットがぶら下がっているのを見ていると思います。gitkを再起動するか、Ctrl + F5で強制的にリロードすると、それらは消えます。それらはまだそこにありますが、最終的にはgitがそれらを処理します。すぐにクリーンアップするように強制することはできますが、それは良い習慣ではありません。孤立したコミットのデフォルトの有効期間は2週間です。これは、それらのコミット本当に必要な場合があり、まだそれを知らなかったため、孤立したままにして先に進むためです。

于 2013-03-05T01:25:17.257 に答える
3

実行git gcすると、参照されていないブランチ(つまりF、タグを付けたり、他のブランチを派生させたりしなかった場合)が特定のしきい値(デフォルトでは2週間、で調整可能--prune=<date>)よりも古い場合に削除されます。

于 2013-03-05T01:25:27.537 に答える