Git удалить большие файлы и исправить файл пакета

Разработчик подумал, что было бы хорошей идеей поместить установочные файлы приложения в репозиторий GIT, предоставленный командой в TFS. Поэтому я пытаюсь удалить папку в репозитории GIT, которая называется "Установка на рабочую станцию", чтобы удалить все установочные файлы, а затем исправить пакетный файл размером около 1,6 ГБ.

Я пробовал BFG Repo-Cleaner и Git Extensions. Git Extensions, чтобы увидеть, если папка все еще там после выполнения шагов BFG.

Я действительно новичок в GIT, и эти 28 файлов были помещены в репозиторий около года назад, прежде чем я начал работать и обнаружил проблему.

Любая помощь или шаги, как это сделать.

Не знаю, как это сделать для BFG: по умолчанию ветка HEAD защищена, и хотя ее история будет очищена, самая последняя фиксация ('tip') - это защищенная фиксация, а ее файловая иерархия не будет быть изменены на всех.

1 ответ

Я не использовал Git Extensions (который, по-видимому, всего лишь инструмент с графическим интерфейсом для взаимодействия с Git) или TFS, но я собираюсь предположить, что у нас есть только Git-репозиторий, и мы не имеем дело с более сложной ситуацией где это зеркало какого-то репозитория TFVC, который также необходимо очистить.

Я действительно новичок в GIT, и эти 28 файлов были помещены в репозиторий около года назад, прежде чем я начал работать и обнаружил проблему.

Хорошие новости, это именно та проблема, для решения которой была создана BFG!

Любая помощь или шаги, как это сделать.

Документация для BFG Repo-Cleaner находится по адресу: https://rtyley.github.io/bfg-repo-cleaner/... вам определенно будет полезно, если вы потратите время на ее прочтение, особенно раздел " Использование " (который объясняет процедуру, ведущую к использованию BFG и последующую за ней), а также ваши текущие файлы являются священными... и раздел Примеры.

Я пробовал BFG Repo-Cleaner и Git Extensions. Git Extensions, чтобы увидеть, если папка все еще там после выполнения шагов BFG.

Какие аргументы командной строки вы использовали, когда пытались вызвать BFG, и какие ошибки или выходные данные он вам дал? Такая информация всегда полезна людям, которые пытаются вам помочь! Команда, которую я бы использовал в вашей ситуации, была бы:

$ bfg --delete-folders "Workstation Install"

Обратите внимание, что передача имен файлов с пробелами в приложения командной строки всегда немного неуловима, но заключение в двойные кавычки должно работать, как мне кажется, заключения названия папки (только имя папки, а не ее путь в репозитории).

Не знаю, как это сделать для BFG: по умолчанию ветка HEAD защищена, и хотя ее история будет очищена, самая последняя фиксация ('tip') - это защищенная фиксация, а ее файловая иерархия не будет быть изменены на всех.

Вы цитируете из раздела " Ваши текущие файлы являются священными... " в документации BFG там, так что я предполагаю, что вы прочитали это, но, к сожалению, это не было достаточно ясно?

Возможно, вам будет полезно прочитать этот ответ Stackru, альтернативное объяснение другого человека этой функции безопасности в BFG.

Чтобы попытаться объяснить это еще раз сам: вам не нужны эти файлы, верно? Таким образом, вы можете начать с нормального коммита, удалив их из главной ветки? На этом этапе вы можете проверить, что ваш проект по-прежнему работает без этих файлов (что довольно вероятно в вашем случае, но, возможно, не так для других проектов, выполняющих очистку - что если они удалят файл, который нарушает некоторые тесты?),

Тогда вы готовы к гораздо более радикальному шагу переписывания всей истории Git - вы можете запустить BFG, и вам нужно только решить проблемы с разделением этой обновленной истории - вам не нужно решать проблему внезапно ломая ваш проект, удаляя эти файлы, потому что вы уже забрали (и исправили) эту проблему заранее.

Почему эта функция безопасности в BFG?

Как автор BFG, я не хотел задавать вопросы по поддержке пользователей, которые случайно нарушили сборку своего проекта, запустив BFG, - лучше, чтобы пользователи ломали и исправляли свои проекты, прежде чем приступить к работе с BFG! Таким образом, BFG не удаляет файлы, присутствующие в последнем коммите - вам нужно вручную убедиться, что текущая версия вашего файлового дерева очищена от этих нежелательных файлов.

Полное раскрытие: я являюсь автором BFG Repo-Cleaner.

Другие вопросы по тегам