облегченная версия репозитория / ветки в git
Вопрос
Я использую git в проекте, который генерирует множество файлов данных (результатов моделирования).Я "вынужден" версифицировать и отслеживать все эти результаты в одном репозитории.(Это жесткое требование и не может быть изменено)
Однако они мне не нужны.У нас есть около 50 МБ для проекта и 5 ГБ результатов в репозитории.
Возможно ли для меня создать ветку, удалить все результаты, проверить эту ветку и работать только с этой веткой?
Насколько сложно было бы (что мне нужно было бы сделать) перенести мои локальные изменения обратно в ветку fat?
Есть ли лучшее решение, чтобы избавиться от этих 5 ГБ для моей работы?
Решение
Если бы вы создали ветку и удалили файлы результатов из ветки, то при объединении вашей ветки обратно в master также была бы предпринята попытка удалить результаты из master.Удаление файла - это такое же изменение, как и любое другое.
Возможно, вы могли бы использовать поддержку подмодуля git для управления изменениями вашего кода в качестве подмодуля репозитория fat.Таким образом, казалось бы, что репозиторий fat содержит все, но вы могли бы работать только с небольшими фрагментами кода независимо.Возможно, потребуется немного повозиться, чтобы все работало гладко.
Другие советы
Если вы создадите ветку и удалите ненужные файлы за один коммит, у вас должна быть возможность возвращать все последующие коммиты обратно в вашу основную ветку, не объединяя коммит, который удаляет файлы данных.
Посмотрите на руководство для git cherry-pick.
Помимо git cherry-pick, другой альтернативой является запуск git-revert при изменении удаления файла непосредственно перед объединением.