Как редактировать / выталкивать / вытягивать родительский элемент родительской вилки на GitHub - PullRequest
0 голосов
/ 14 июля 2020

Для проекта я использую пакет Python под названием Efficien tnet -pytorch-3d ( this github page). Эта трехмерная реализация является ответвлением двухмерной реализации под названием Efficien tnet -pytorch ( this github page). Порядок вилки на github такой:

lukemelas/EfficientNet-PyTorch -> shijianjian/EfficientNet-PyTorch-3D/ ->  nwschurink/EfficientNet-PyTorch-3D

Как видите, я раздвоил 3D-реализацию пакета на свой собственный GitHub, поскольку мне нужно было добавить некоторые функции, которыми я был отсутствует. Я изменил код и выполнил запрос на перенос в репозиторий shijianjian / Efficien tnet -Pytorch-3D, чтобы объединить его с мастером.

Хорошо, теперь моя проблема. На странице выпуска 2D Efficien tnet -pytorch GitHub я нашел человека, который спрашивает о функциональности, которую я добавил в реализацию 3D. Я могу легко добавить это в код, однако, поскольку 2D и 3D код теперь сильно отличаются, невозможно просто выполнить запрос на вытягивание для изменений, которые я внес в код Efficien tnet -PyTorch-3D. По-видимому, невозможно также форкнуть lukemela / Efficien tNet -PyTorch в мой github ...

Как мне вытащить код из исходного репо (lukemelas / Efficien tNet -PyTorch) на мой GitHub , внесите изменения, а затем отправьте sh его в lukemelas / Efficien tNet -PyTorch?

Я могу найти только руководства о том, как сделать sh ваш код родительским элементом вилки, которая у меня есть ( например, в shijianjian / Efficien tNet -PyTorch-3D), но я не могу найти, как добраться до родителя родителя.

1 Ответ

1 голос
/ 14 июля 2020

Вот как я с этим справлюсь.

Добавить восходящий поток

git remote add upstream_2D git@github.com:lukemelas/EfficientNet-PyTorch.git

Получить контент

git fetch upstream_2D

Создать ветвь, указывающую на восходящего мастера (или последний общий предок см. ниже).

git checkout -b mySuperFix  upstream_2D/master

Сделайте здесь свой патч и отправьте свой Pull Request

Затем объедините эту ветвь со своей основной веткой, если хотите и если это возможно.

Некоторые коммиты из 2D-проекта не объединены с 3D-вилкой, похоже, что вилка 3D не синхронизировалась c с 2D-проектом.

Так что я думаю, вам следует основывать свой работать с последним общим предком:

git checkout -b mySuperFix  d8481a539cc1f84ef0fe502f9c12dcc187669611

Это может быть проще, или вы можете начать с объединения 2D-фиксации в 3D-проект, а затем сделать фиксацию на основе 2D-мастера

...