Наш проект GitHub OSS был недавно изменен на монорепо. В результате изменилась структура каталогов и была создана новая папка для части, которую я написал.
Я хотел перенести мою ветку на этот новый монорепо в нужную папку. Я пытался пару раз, но запутался.
Итак, раньше структура папок была:
root-directory-for-my-part / ... (src и т. Д.)
Теперь это:
monorepo-directory / root-directory-for-my-part / ... (src и т. Д.)
Другой участник создал этот монорепо. Как мне перенести мой код в нужную папку?
Я использую git и GitHub . Моя ветка называется custom-insertion-point
. Удаленная ветка репо @next
. Я добавил исходное удаленное репо в мой git как upstream
, а свой собственный форк как origin
.
Примечание:
Я уже сделал пиар с моей стороны (код готов). Мне просто нужно перенести его на новый монорепо.
Я безуспешно пытался следовать этому руководству: https://github.com/edx/edx-platform/wiki/How-to-Rebase-a-Pull-Request
UPDATE:
Пока я сделал:
git merge-base my-branch upstream/next
и скопировал хеш коммита
git rebase -i ${HASH}
используя хеш коммита выше
- раздавил коммиты (как указано в руководстве, приведенном выше)
git log
, кажется, сообщает, что теперь в моей ветке custom-insertion-point
1057 * действительно есть только один коммит
Полагаю, пока это правильно. Теперь мне нужно как-то перебазировать этот сдавленный коммит на новый монорепо, но в правой подпапке.
Я пытался просто сделать:
git rebase upstream/next
Это вызвало кучу конфликтов, и все мое локальное рабочее дерево было изменено для репликации monorepo (но без моего собственного кода) ...
UPDATE2:
Я снова попробовал следующую команду:
git rebase upstream/next
Проблема в том, что все заканчивается в неправильной папке. Новые файлы, которые я создал для своей части, попадают в корень monorepo. Другие файлы, которые были там до моей части, но которые я модифицировал для своей части, оказываются в правильной подпапке.