Перебазировать ветку после переезда в монорепо - PullRequest
0 голосов
/ 20 мая 2019

Наш проект 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:

Пока я сделал:

  1. git merge-base my-branch upstream/next и скопировал хеш коммита
  2. git rebase -i ${HASH} используя хеш коммита выше
  3. раздавил коммиты (как указано в руководстве, приведенном выше)
  4. git log, кажется, сообщает, что теперь в моей ветке custom-insertion-point 1057 * действительно есть только один коммит

Полагаю, пока это правильно. Теперь мне нужно как-то перебазировать этот сдавленный коммит на новый монорепо, но в правой подпапке.

Я пытался просто сделать:

git rebase upstream/next

Это вызвало кучу конфликтов, и все мое локальное рабочее дерево было изменено для репликации monorepo (но без моего собственного кода) ...


UPDATE2:

Я снова попробовал следующую команду:

git rebase upstream/next

Проблема в том, что все заканчивается в неправильной папке. Новые файлы, которые я создал для своей части, попадают в корень monorepo. Другие файлы, которые были там до моей части, но которые я модифицировал для своей части, оказываются в правильной подпапке.

1 Ответ

1 голос
/ 20 мая 2019

Вы должны работать слияниями, а не перебазировать, потому что на самом деле это слияния. Также есть хорошая страница справки github для Git поддерева слияния , что в основном и является тем, чего вы пытаетесь достичь.

Также стоит отметить, что в git есть вклад, который называется subtree. Вы можете взглянуть на git subtree output / docs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...