Bitbucket:Git履歴からフォルダーを削除します

BitbucketでGitをホストする場合、2 GBのハード制限があります。これを超えると、リポジトリへの読み取り専用アクセスのみが可能になります。 これを防ぐには、たとえば、コミットから大きなフォルダまたはファイルを遡及的に削除できます。 ただし、他の場合(アクセスデータが履歴に入力された場合、またはnode_modulesがマスターに戻った場合)、Gitの性質に反して、Gitの履歴を遡及的に操作する必要があります。


Bitbucketはこれ自体について詳細な記事を書いています。 ケースのすべてを実行するために、最初に新しいリポジトリを作成します:

ビットバケット履歴クリーン

次に、リポジトリをローカルマシンの空のフォルダにクローンします:

6ab7686fc508ce87c52b10bb5d01ee51

次に、ランダムなコンテンツのファイルを使用して2つのサブフォルダーを作成します:

6ab7686fc508ce87c52b10bb5d01ee51

私たちは今マスターを推し進めています:

6ab7686fc508ce87c52b10bb5d01ee51

これで、Bitbucketのハード制限である2GBにほぼ達しました。:

ビットバケット履歴クリーン

これはローカルで確認することもできます(「サイズパック」を参照)。:

6ab7686fc508ce87c52b10bb5d01ee51

ビットバケット履歴クリーン

ここでのタスクは、リポジトリから「foo」をさかのぼって削除し、サイズを半分にすることです。 これを行うには、最初に現在のHEADを編集し、フォルダーをgitignoreに書き込みます。:

6ab7686fc508ce87c52b10bb5d01ee51

最後に、 BFGリポジトリクリーナーを使用してフォルダーを削除します(BFGには、システム要件としてシステム上の現在のJREが必要です):

6ab7686fc508ce87c52b10bb5d01ee51

結果をローカルで確認できるようになりました:

6ab7686fc508ce87c52b10bb5d01ee51

ビットバケット履歴クリーン

ただし、Bitbucketでは、ガベージコレクターがまだリモートで実行されておらず、bitbucketがプッシュするたびに「gitgc」を実行しないため、リポジトリサイズはまだ変更されていません。:

ビットバケット履歴クリーン

これはサポートによっても確認されています:

ビットバケット履歴クリーン

したがって、リポジトリで「git gc」を手動で実行するには、 support @ bitbucket.orgに直接リクエストを送信することをお勧めします。 しばらくして、これもサポートチームによって行われました:

ビットバケット履歴クリーン

リポジトリを「新たに」別のコンピュータに移動した場合、ディスクには0.9GBしか保存されません。 誰かが1.8GBバージョンをローカルで利用できる場合は、「gitpull」に続けて「gitgc」で十分です。

バック