У нас есть хранилище git с 13.08.2012, с более чем 4000 коммитов, занимающих почти 7 ГБ дискового пространства. (GIT Version: 2.9.0.windows.1)Truncate GIT History (с 2 постоянными ветвями)
В течение этих лет проект развивался довольно много, поэтому самые старые коммиты больше не полезны.
Как и многие другие, мы хотели бы «консолидировать» историю с определенной даты. Предположим, мы хотим «сквош» вместе все, что было старше 6 месяцев, чтобы стать одним большим фиксатором.
Основным препятствием является то, что мы получили мульти-ветви структуру, и, очевидно, мы хотим сохранить его:
- Мастер филиал (бессрочное)
- Развитие отрасли (бессрочное)
- Характеристика отрасли (один для каждой задачи, удаленных после слияния)
в примере, Это как история выглядит сейчас:
Это то, что нам нужно:
Мы пытались несколько таких подходов "Rebase", "Вишневый выбрать", "клон" с "глубиной" ... но ничего не кажется способный делать то, что нам нужно. Это наиболее значимые вещи я пытался:
Rebase и вишневый выбрать (с помощью TortoiseGit 2.1.0.0) С обеих команд я пытался «сквош» старейшей совершает, но каждый объединить результаты в диалоге " какой родитель вы хотите выбрать? parent1/parent2 ", то независимо от того, что я выбираю: все файлы становятся помечены как« конфликты », и поэтому их нужно разрешить« вручную ». Я просто не могу обрабатывать все эти конфликты вручную (и не воспроизводить одну и ту же последовательность для ветвей Master и Develop).
Клон с глубиной (с помощью Git-Баш) Я выполнил эту команду: «мерзавец клон limitedRepo --depth = 1000», что правильно «сквош» все старше совершает, но в результате репо имеет только одну ветвь.
Так что я попробовал эту команду, чтобы получить обратно Develop ответвления от происхождения:
«мерзавец удаленного набора-ветвь происхождения„*“» «мерзавец принести -vvv»
но сгружена ветвь содержит всю историю, а не «раздавленную» нам.
Я попытался использовать те же команды с разными параметрами, но я просто нащупываю.
Любая идея?
Я только что сделал еще один тест, используя rebase, но у меня все еще есть проблемы с конфликтом. Это то, что я пробовал: 1. мерзавец контроль --orphan температуры sha1 2. мерзавец совершить -m «усеченную историю» 3. мерзавца перебазироваться --onto мастера темп sha1 Это послание, которое я получил: КОНФЛИКТА (content): Объединить конфликт в файле aFile.txt : Ошибка при слиянии изменений. Патч не выполнен в 0001 Построен для выпуска Копия патча, который не найден, найден в: .git/rebase-apply/patch Если вы решили эту проблему, запустите «git rebase -continue». –