Я работал над репозиторием на моей учетной записи GitHub, и это проблема, на которую я наткнулся.Удалить папку и ее содержимое из истории git/GitHub
- Node.js проект с папкой с несколькими НПХ установленных пакетами
- пакетов были в
node_modules
папке - Добавлены эта папка мерзавца хранилище и протолкнул код GitHub (не думая о NPM части в то время)
- Понял, что вы на самом деле не нужно, что папка, чтобы быть частью кода
- Удаляется эта папка, отодвинул его
В этом случае размер общей репликации git был около 6MB, где фактический код (кроме этой папки) составлял только около 300 KB.
Теперь, что я ищу в конце, это способ избавиться от деталей этой папки пакета из истории git, поэтому, если кто-то ее клонирует, им не нужно загружать историю с размером в 6 Мб, где только реальные файлы они будут получать от последней фиксации будет 300 КБ.
Я посмотрел возможные решения для этого и пытались эти 2 метода
- Remove file from git repository (history)
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
сутью казалось, он работал, где после выполнения сценария, его показал, что он избавился от этой папки, и после этого он показал, что было изменено 50 различных коммитов. Но это не позволило мне нажать этот код. Когда я попытался нажать, он сказал Branch up to date
, но показал, что 50 коммитов были изменены на git status
. Другие 2 метода тоже не помогли.
Теперь, хотя он показал, что он избавился от истории этой папки, когда я проверил размер этого репо на моем локальном хосте, он все еще находился около 6 МБ. (Я также удалил папку refs/original
, но не увидел изменения размера репо).
Что я хочу уточнить, если есть способ избавиться от не только истории фиксации (которая является единственной вещью, которая, как мне кажется, произошла), но и тех файлов, которые git сохраняет, если кто-то хочет откат.
Допустим, решение представлено для этого и применяется на моем локальном хосте, но не может быть воспроизведено в этом репо GitHub, можно ли клонировать это репо, откат к первому фиксатору выполнить трюк и нажать его (или делает это означает, что git будет по-прежнему иметь историю всех этих коммитов? - иначе 6MB).
Моя конечная цель заключается в том, чтобы в основном найти лучший способ избавиться от содержимого папки от git, чтобы пользователю не приходилось загружать вещи на 6 МБ и, возможно, иметь другие коммиты, которые никогда не касались модулей (в основном это все) в истории git.
Как я могу это сделать?
Если какой-либо из нижеприведенных ответов решает вашу проблему, возможно, вам стоит подумать о принятии в качестве ответа на ваш вопрос. https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – starbeamrainbowlabs