Как мне переписать историю Git, чтобы отменить сдавленные коммиты слияния?
Я работал над проектом, который недавно перешел с Subversion на Git. Я принимал участие в репозитории Subversion через git-svn
до миграции. После миграции я заметил, что изрядное количество истории было потеряно, потому что каждый из моих коммитов слияния из веток темы был раздавлен (либо через git-svn
мост, или из-за миграции), потеря некоторых сообщений фиксации, которые я хочу сохранить. Можно ли использовать мою локальную копию репозитория перед миграцией, чтобы отменить коммиты слияния в репозитарии после миграции, возможно, через что-то вроде "выбора вишни"?
1 ответ
Вы можете использовать git graft для увеличения сдавленных коммитов, когда другой родитель указывает на реальные коммиты, которые были объединены. После того, как вы добавили трансплантаты для всех сдавленных коммитов, вы можете навсегда включить их, переписав историю git с помощью git filter-branch
Этот SO-ответ содержит подробности о том, как это сделать: Установка указателя git parent на другого родителя.