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