У меня есть два проекта. Одним из них является оригинальный проект OSS. Другой, который мы будем некорректно называть «форком», является копией ветви исходного проекта.
Код в форке был импортирован из исходного архива из Github. (Я очень хорошо осознаю тот факт, что это не то, как вы делаете вещи, но команда до меня сделала это, и теперь мне приходится иметь дело с последствиями. , но это то, что есть, и это нужно исправить сейчас).
Проблема:
Код в форке содержит код оригинального проекта для тега 1.2.0
. Код в форке это master
.
Вилка имеет модификации, которые не являются частью исходного проекта.
Как и следовало ожидать, оригинальный проект также продолжил свою жизнь, и теперь он достиг версии 1.6.0
.
Я бы хотел начать все сначала и сделать следующее:
(Действительно) Форк первоначального проекта (вместе со всей его историей).
Создать ветку 1.2.0-modified
, основанную на оригинальном 1.2.0
.
Извлеките изменения из репозитория с изменениями и примените их к 1.2.0-modified
. (Я попытался перебазировать, после некоторых изменений вручную во время слияния я смог получить код для сборки).
Теперь я хотел бы знать, каков наилучший ход действий, если бы я хотел продвинуться вперед и вернуться к 1.6.0
.
Пожалуйста, имейте в виду, что произошли изменения как в первоначальном проекте, так и в "форке", поэтому я хотел бы сохранить историю с обеих сторон.
Как правильно это сделать?
Очевидно, я добавил оба пульта в новый форк для модификаций и извлек их обоих.
Проблема в том, что после перебазирования изменений из 1.2.0
вилки, в то время как я получил его для разрешения конфликтов и правильной сборки, при попытке перебазировать на 1.6.0
, кажется, снова применяется все те же исправления, которые, как мне кажется, объясняются тем, что исходные ветви не были основаны на 1.2.0-modified
.
Есть ли разумный и простой способ обойти это?