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

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


Bitbucketはこれに関する詳細な記事を書いています。 1つのケースですべてを確認するには、まず新しいリポジトリを作成します。

bitbucket履歴クリーン

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

6ab7686fc508ce87c52b10bb5d01ee51

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

6ab7686fc508ce87c52b10bb5d01ee51

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

6ab7686fc508ce87c52b10bb5d01ee51

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

bitbucket履歴クリーン

これをローカルで確認することもできます(「size-pack」を参照):

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket履歴クリーン

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

6ab7686fc508ce87c52b10bb5d01ee51

最後に、 BFG Repo Cleanerを使用してフォルダーを削除します(BFGはシステム要件としてシステム上の現在のJREを必要とします)。

6ab7686fc508ce87c52b10bb5d01ee51

ローカルで結果を確認します。

6ab7686fc508ce87c52b10bb5d01ee51

bitbucket履歴クリーン

ただし、ガベージコレクターはまだリモートで実行されておらず、ビットバケットはプッシュごとに「git gc」を実行しないため、Bitbucketのリポジトリサイズはまだ変更されていません。

bitbucket履歴クリーン

サポートもこれを確認します:

bitbucket履歴クリーン

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

bitbucket履歴クリーン

リポジトリを別のコンピュータに「新しく」ドラッグすると、0.9 GBだけがディスクに残ります。 ローカルで利用可能な1.8 GBバージョンがまだある場合は、「git pull」に続いて「git gc」で十分です。

バック