LINUX.ORG.RU

Git: сделать из репы один из подкаталогов другой репы с сохранением истории.


0

1

Есть дерево каталогов, не находящееся в репозитории. Один из подкаталогов «abc» — репа с длинной историей.

Хотелось бы загнать всё дерево каталогов в новую репу, чтобы тот каталог «abc» перестал быть самостоятельной репой, а стал рядовым каталогом в составе новой репы, но чтобы в новой репе у него была та длинная история, которая была у него в его бытность репой, а остальные каталоги начинали существовать в этой новой репе как-бы недавно.

Хотя на самом деле можно сделать иначе - создать все каталоги «в начале времён», а потом на каталоге «abc» прокрутить всю историю репы «abc». Как будто всё существует издавна, а менялся только каталог «abc». Но тогда придётся у всех каталогов как-то искусственно поставить древнюю дату.

Короче, чё делать?

★☆

Последнее исправление: kiverattes (всего исправлений: 3)

Что-то я сомневаюсь, что получится сделать так, как ты хочешь, разве что всю историю разобрать на патчи и потом сложить в нужном порядке. Лучше ограничься git submodule.

i-rinat ★★★★★
()

Но тогда придётся у всех каталогов как-то искусственно поставить древнюю дату.

Нет, не придётся, даты не обязаны быть монотонными. Особенно это заметно, если rebase'ишь давно отпочковавшиеся ветки поверх master.

i-rinat ★★★★★
()

Так и сделай. Сначала git filter-branch чтобы переместить всё содержимое репозитория в подкаталог, затем git rebase чтобы изменить первый коммит добавив в него остальное содержимое.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.