私は自分の GitHub アカウントでリポジトリに取り組んでいましたが、これは私が遭遇した問題です。
- いくつかの npm パッケージがインストールされたフォルダーを含む Node.js プロジェクト
- パッケージは
node_modules
フォルダにありました - そのフォルダーを git リポジトリに追加し、コードを github にプッシュしました (その時点では npm の部分については考えていませんでした)。
- そのフォルダーをコードの一部にする必要がないことに気付きました
- そのフォルダを削除し、プッシュしました
その場合、git リポジトリの合計サイズは約6MBで、実際のコード (そのフォルダーを除くすべて) は約300 KBにすぎませんでした。
最終的に私が探しているのは、そのパッケージ フォルダーの詳細を git の履歴から削除する方法です。そのため、誰かがそれを複製した場合、実際のファイルのみが取得される 6 MB 相当の履歴をダウンロードする必要はありません。最後のコミットの時点で 300KB になります。
これに対する可能な解決策を探し、これらの2つの方法を試しました
- git リポジトリからファイルを削除 (履歴)
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
Gist は、スクリプトを実行した後、そのフォルダーが削除されたことを示し、その後、50 の異なるコミットが変更されたことを示していました。しかし、そのコードをプッシュすることはできませんでした。私がそれをプッシュしようとしたとき、それは言っBranch up to date
たが、50のコミットがgit status
. 他の 2 つの方法も役に立ちませんでした。
そのフォルダーの履歴が削除されたことが示されましたが、ローカルホストでそのレポのサイズを確認したところ、まだ約6MBでした。(フォルダーも削除しrefs/original
ましたが、リポジトリのサイズの変化は見られませんでした)。
私が明確にしたいのは、コミット履歴(私が起こったと思う唯一のことです)だけでなく、ロールバックしたいと仮定してgitが保持しているファイルも削除する方法があるかどうかです。
これに対する解決策が提示され、私のローカルホストに適用されますが、その GitHub リポジトリに再現することはできません。そのリポジトリを複製し、最初のコミットにロールバックしてトリックを実行し、それをプッシュすることは可能ですか (または、それは git がそれらすべてのコミットの履歴がまだ残っていますか? - aka. 6MB)。
ここでの私の最終目標は、基本的に git からフォルダーの内容を削除する最善の方法を見つけて、ユーザーが 6MB 相当のものをダウンロードする必要がなく、モジュール フォルダーに触れたことのない他のコミットを保持できるようにすることです (これは非常に重要です)。それらのほとんどすべて) git の歴史の中で。
これどうやってするの?