0

履歴から完全に削除したいいくつかの大きなファイルを含む GitHub リポジトリがあります。クローンを作成しました

GitHub には、このような大きなファイルを削除するために使用できる便利なページがあります ( https://help.github.com/articles/remove-sensitive-data )。そこで、GitHub リポジトリのクローンを作成し、そのページの指示に注意深く従って、ローカル リポジトリのサイズが大幅に縮小されたことを確認しました。

そこで、次に、次のコマンドを使用して、すべてを強制的に GitHub リポジトリにプッシュしようと考えました。

git push --force --all

GitHub リポジトリの SHA-1 値をローカル クローンの SHA-1 値と照合したところ、すべて一致しました。そこから、「新しい」GitHub リポジトリのクローンを作成し、そのサイズを確認して、元のクローンと同じになると考えましたが、そうではありません!

いくつかの調査の後、GitHub リポジトリの (クローズされた) プル リクエストは、私が削除した大きなファイルの一部を参照しています。したがって、それらのファイルはまだ存在しています。(私が知っている限りでは、私の大きなファイルの一部/すべてをまだ参照しているものが GitHub に他にもあるかもしれません。)

では、GitHub リポジトリをローカル リポジトリと同じくらい小さくするには、どうすればよいでしょうか? (それがまったくできると仮定して!)

つまり、私のGitHubリポジトリを「クリーンアップ」したいという全体的な考えは、それをクローンしたい/必要とする人々は、今はまだ比較的大きいにもかかわらず、小さなクローンになってしまうということです.

FWIW、新しい GitHub リポジトリを作成するには、私の「クリーンな」リポジトリをそこにプッシュすると、実際には新しい「小さな」(GitHub) リポジトリになりますが、すべての問題、コメント、プル リクエスト、フォークが含まれているわけではありません。など、現在の GitHub リポジトリの。したがって、それは私にとってオプションではありません。どちらかといえば、プル リクエスト (および、場合によっては、大きなファイルの一部またはすべてを参照する他のもの) を失うことを嬉しく思いますが、問題は、それが実際に実行できるかどうかです...

FWIW #2、ある GitHub リポジトリから別の GitHub リポジトリに課題を転送する Python スクリプトを認識しています ( https://github.com/mkorenkov/tools/blob/master/gh-issues-import/gh-issues-import.py)、しかしそれは私にとってはうまくいきませんでした(いくつかの問題が欠けていたなど)。

4

1 に答える 1

0

ファイルを削除しても git はファイルを保存し続けるため、git リポジトリをクリーンアップするのは非常に困難です。より良い方法がある可能性がありますが、新しいレポを最初から作成することをお勧めします。ビデオや写真のように決して変更されないファイルを含めたり、バイナリ ファイルを含めたりしないでください。git リポジトリからファイルを取り出しても、データは削除されないことに注意してください。

于 2013-05-04T22:06:13.780 に答える