Я работал над репозиторием в моей учетной записи GitHub, и я столкнулся с этой проблемой.
- Проект Node.js с папкой с несколькими установленными пакетами npm
- Пакеты были в
node_modules
папке - Добавил эту папку в репозиторий git и отправил код в github (в то время не думал о части npm)
- Понял, что вам не нужно, чтобы эта папка была частью кода
- Удалил эту папку, нажал на нее
В тот момент размер общего репозитория git составлял около 6 МБ, тогда как фактический код (все, кроме этой папки) составлял всего около 300 КБ .
Теперь, в конце концов, я ищу способ избавиться от деталей папки этого пакета из истории git, поэтому, если кто-то клонирует его, ему не нужно загружать историю в 6 Мб, где будут получены только реальные файлы. по состоянию на последний коммит будет 300KB.
Я искал возможные решения для этого и попробовал эти 2 метода
- Удалить файл из репозитория git (история)
- http://help.github.com/remove-sensitive-data/
- https://gist.github.com/1588371
Казалось, что Gist сработал, когда после запуска скрипта он показал, что избавился от этой папки, и после этого показал, что было изменено 50 различных коммитов. Но это не позволило мне нажать этот код. Когда я попытался выдвинуть его, он сказал, Branch up to date
но показал, что 50 коммитов были изменены на a git status
. Другие 2 метода тоже не помогли.
Теперь, несмотря на то, что он показал, что он избавился от истории этой папки, когда я проверил размер этого репо на моем локальном хосте, он все еще был около 6 МБ. (Я также удалил refs/original
папку, но не увидел изменения в размере репо).
Я хочу уточнить, есть ли способ избавиться не только от истории коммитов (что, как мне кажется, единственное, что произошло), но и от тех файлов, которые git продолжает предполагать, что кто-то хочет откатиться.
Допустим, решение для этого представлено и применяется на моем локальном хосте, но не может быть воспроизведено для этого репозитория GitHub, возможно ли клонировать это репо, выполнить откат к первому коммиту и выполнить его (или это означает, что git будет еще есть история всех этих коммитов? - ака. 6MB).
Моя конечная цель - найти лучший способ избавиться от содержимого папки с помощью git, чтобы пользователю не приходилось загружать 6 МБ материала и, возможно, иметь другие коммиты, которые никогда не касались папки модулей (это довольно много всего) в истории Git.
Как я могу это сделать?