По ошибке завели ядро bitrix под Контроль версий. Что делать?
Ситуация такая:
Проект был изначально заведен вместе с ядром.
ну соответственно помимо того что он много места занимал + если на тестовом ставить обновления и комитеть изменения ядра то при переносе в мастер те изменения что применялись на базу во время обновления все равно не применяться и в итоге у нас новый код ядра не будет корректно работать на старую базу да и обновления уже не накатишь так как они примерились не верно.
чтобы вывести ядро битрикс из контроля версий я сделал следующее
добавил в .gitignore следующие правила:
bitrix/activities/
bitrix/admin/
bitrix/backup/
bitrix/cache/
bitrix/components/bitrix/
bitrix/css/
bitrix/fonts/
bitrix/gadgets/
bitrix/image_uploader/
bitrix/images/
bitrix/js/
... Полный список могу прислать сразу файлом
Но так как ядро уже присутствует в истории если происходят изменения в этих файлах они все равно попадают в отслеживание
по этому я сделал следующее:
я вызвал на данные папки команды
git rm --cached -r
типо git rm --cached -r bitrix/panel/ bitrix/components/bitrix/ ...
это метит файлы как удаленные но не удаляет их реально
Они попадают в коммит как удаленные.
это я сделал в ветке где разрабатывал.
Но теперь если я делаю пул с мастера он похоже реально удаляет эти файлы при мерже..
я вижу оч неприятную картину что у меня части кода модулей, компонентов пропали и сайт ломается.
сейчас у меня возникла следующая идея
перед пулом с своей веткой на мастере (боевом сайте), Я
- полностью копирую гитигнор с всеми исключениями
- удаляю не по папкам как ранее а реально ВСЕ что попадает под игнор командами:
git rm -r --cached .
git add .
git commit -m "Removing all files in .gitignore"
- И только после этого делаю пул с своей веткой
Как думаете это сработает?
Есть другой вариант?
Сталкивались с подобным и как выходили из этих проблем?
и картина странная он не все файлы удалил
а части модуля, у компонентов главные файлы.
причем файлы удалились а востановить даже хардрезетом не получаеться.
делал так как и описывал
на мастере >
1) обновляю боевой проект
2) добавляю гитигнор
3) делаю git rm -r --cached по папкам (думаю это и повлияло может не на все это применил) а сделать сразу на все не догадался
4) комичу на мастере все
5) И делаю пул на ветку с новым функционалом
Вот на этом моменте вижу что все полетело.