6

私は 3 年以上の大きなリポジトリ git を持っています。1 年以上前の変更履歴を削除したいと考えています。これは可能ですか?git rebase を使用できますが、その方法は?

4

2 に答える 2

3

あなたの正確な状況を例として使用するPro Git bookから、この記事でgit replace呼び出された黒魔術を調べてください。基本的に、新しいルートとして機能させたい履歴のポイントを見つけることができれば、親を持たないコミットに置き換えることができます。元のツリーを単一のマシンに保存することもできるため、履歴が再度必要になった場合に簡単に復元できます。

git rebase(およびgit replace、さらに言えば) の問題は、ブランチを含むツリー全体を書き換えたいため、すべてが異なるコミットを指すことに注意してください。これは、チームの他のメンバーが変更をマージするのを難しくするという結果ももたらします。これは、すべての親が以前とは異なる SHA を持っているためです。

于 2012-10-26T19:10:11.970 に答える
0

履歴を削除しても、おそらく問題は解決しません。ある時点で、大きなファイルがリポジトリにコミットされ、その後削除される可能性があります。

HEADに存在しないxメガバイトを超えるgitリポジトリのファイルの検索を見てみましょう。

于 2012-10-26T18:02:34.583 に答える