Я нахожусь в ситуации, когда я пытаюсь преобразовать проект с открытым исходным кодом в Git, и недавно я получил доступ к историческим данным для проекта. Однако я уже внес изменения в репозиторий, поэтому хочу добавить эти ранние изменения по мере того, как git фиксирует в начале дерева коммитов в Git. (Да, я знаю, что это изменит SHA для последующих коммитов; это приемлемо.) Данные предоставляются в виде последовательных снимков рабочего каталога. Я хочу настроить его так, чтобы состояние рабочего каталога для последующих коммитов не затрагивалось (я не хочу объединять изменения в).
Например, если начальный коммит B
добавляет файлы a
и b
в рабочий каталог, а мой исторический коммит A
добавляет файл a
, я хочу сделать новый коммит B'
родившийся из A
который добавляет только файл b
. И в B
и в B'
рабочий каталог выглядит одинаково, и любые последующие коммиты поверх B
могут быть безопасно перебазированы в B'
.
Возможно ли сделать это в Git? Если так, то как?
Изменить: Обратите внимание, что мне нужно изменить первоначальный коммит. Стандартное использование git commit
добавляет новый коммит как дочерний элемент HEAD
commit, и поэтому не работает для начального коммита, у которого нет родителя.