Как мне изменить, с какого проекта GitHub я разветвлялся?
Я разветкил проект, внесли некоторые изменения и получил принятый запрос на перенос. Но теперь проект, который я форкировал, переместился в другой репозиторий и является вилкой этого репозитория.
То есть:
Original -> MyFork
Сейчас:
NewOriginal -> Original -> MyFork
Как мне получить следующее:
NewOriginal -> MyFork
Ответы
Ответ 1
Локально вы можете просто изменить цель исходного репозитория. Обычно этот репозиторий называется upstream, поэтому вы должны сделать это:
git remote set-url upstream git://example.com/NewOriginal.git
В зависимости от того, какой хост вы используете (то есть, где находится ваша вилка), могут быть некоторые дополнительные внутренние ссылки, вы не можете так легко изменить. Например, в Github вилка напрямую связана с оригиналом, из которого вы раздвоены. В этом случае вам нужно снова открыть новый проект и работать с новой вилкой.
В этом случае, однако, вы можете легко изменить URL исходного репозитория, а также просто нажимать все, что вы изменили раньше, в старой вилке в вашу новую вилку.
Ответ 2
ПРИМЕЧАНИЕ. Следующее решение является неполным, так как вы потеряете весь контент вики и проблемы, специфичные для вашей вилки.
Вы можете добиться этого, выполнив следующие шаги:
- Вытащите все ветки и теги из существующей вилки.
- Удалить репозиторий на GitHub.
- Вилка из нового репозитория.
- При необходимости обновите удаленный URL.
- Вставьте все локальные ветки и теги в новый репозиторий.
Ответ 3
Обновите удаленный URL в вашем репозитории:
git remote set-url origin <url to NewOriginal, e.g. git://…/bla.git>
Ответ 4
Предполагая, что вы выполнили правильное форкирование и добавление вверх по течению, см. githubHelpOnFork; чтобы просто изменить URL вверх по течению, выполните:
-
проверьте, как выглядит текущий поток и происхождение:
git remote -v
-
если вы видите восходящий поток, и вы хотите просто изменить его URL-адрес, сделайте то, что предложил @poke (если не следовать ссылке helpGithub выше, чтобы добавить новый восходящий поток):
git remote set-url upstream git://example.com/NewOriginal.git
-
затем убедитесь, что вверх по потоку указывает на новый URL
git remote -v