#git
#git
Вопрос:
Я хочу извлечь каталог из репозитория, включая всю историю его фиксации. Проблема, с которой я сталкиваюсь, заключается в том, что конечный результат не содержит истории фиксации до перемещения / переименования файлов (что было сделано в какой-то момент).
Пример:
- Я хочу извлечь src /lib/features/TheLib из репозитория проекта.
- Этот каталог ‘theLib’ в какой-то момент находился в другом месте, например ‘src / util /lib / TheLib’.
- Основной репозиторий содержит полную историю изменений, внесенных в файлы, включая изменения до того, как библиотека была перемещена в новое место в репозитории.
- Если я попытаюсь извлечь каталог в новый репозиторий, у меня будет только история фиксации с момента после того, как файлы были перемещены / переименованы.
Я пробовал это [0]:
$ git filter-branch --prune-empty --subdirectory-filter src/lib/features/TheLib master
и это [1]:
$ ./git-filter-repo --subdirectory-filter src/lib/features/TheLib
Оба инструмента дают мне одинаковые результаты. Это почти работает нормально, за исключением отсутствия истории фиксации до переименования.
Комментарии:
1. Я думаю, что это можно было бы сделать с помощью скрипта bash, который извлекал бы все коммиты, связанные с файлами в каталоге, и повторно применял их один за другим в новом репозитории. Однако я не хочу заново изобретать колесо, если что-то подобное уже существует.