Как получить ветку на чужом форке на GitHub?

Я сделал форк из репозитория на GitHub. Я хочу получить код из ветки на форке другого пользователя.

Должен ли я клонировать весь репозиторий этого пользователя в отдельное локальное репо или я могу сделать что-то вроде git checkout link_to_the_other_users_branch?


person Christian    schedule 05.02.2012    source источник
comment
Вам нужны пульты git: progit.org/book/ch2-5.html   -  person millimoose    schedule 06.02.2012


Ответы (2)


$ git remote add theirusername [email protected]:theirusername/reponame.git
$ git fetch theirusername
$ git checkout -b mynamefortheirbranch theirusername/theirbranch

Обратите внимание, что существует несколько «правильных» URI, которые вы можете использовать для удаленного устройства при его добавлении на первом этапе.

  • [email protected]:theirusername/reponame.git – это URI на основе SSH.
  • https://github.com/theirusername/reponame.git – это HTTP URI.

Какой из них вы предпочтете использовать, зависит от вашей ситуации. На GitHub есть справочная статья, объясняющая разницу и помогающая выбрать: мне следует использовать удаленный URL?

person amalloy    schedule 05.02.2012
comment
Что делает эта последняя строка? - person Andrew Downes; 10.07.2015
comment
Последняя строка проверяет новую ветвь с именем mynamefortheirbranch, начальная точка которой установлена ​​в начале theirusername/theirbranch. - person Louis Simoneau; 15.07.2015
comment
Я получаю сообщение Fatal: невозможно одновременно обновлять пути и переключаться на ветку "xyz". Вы намеревались проверить 'xyz/xyz', который не может быть разрешен как фиксация? - person The Onin; 03.11.2015
comment
Не работал со мной. - person Ahmed; 29.05.2019
comment
@amalloy Создает ветку, как и ожидалось, но не позволяет отправить ветку в мою текущую ветку. Получение этого сообщения Чтобы отправить в восходящую ветку на удаленном компьютере, используйте git push krupa-fork HEAD:develop Чтобы отправить в ветку с тем же именем на удаленном компьютере, используйте git push krupa-fork HEAD - person javaGroup456; 24.10.2019
comment
после первой команды добавления remote-$ git fetch theirusername theirbranchname:yourbranchname и ветка будет извлечена и добавлена ​​в ваше локальное разветвленное репо. Затем сделайте толчок, если это необходимо. - person Vikrant; 07.05.2020
comment
+ вернуться в репозиторий (git remote set-url) + push Или вы не будете работать на своем собственном сервере. - person Sandburg; 16.10.2020
comment
@Sandburg Я понятия не имею, какое предложение пытается сделать этот комментарий. - person amalloy; 12.11.2020

предложение amalloy мне не помогло. Это сделало:

git remote add theirusername https://github.com/theirusername/reponame
git fetch theirusername
git checkout -b mynamefortheirbranch theirusername/theirbranch

Ресурсы:

person Mateusz Piotrowski    schedule 07.06.2016
comment
Я полагаю, что вам не хватает .git в конце первой строки. - person TomNorway; 13.10.2016
comment
@TomNorway Ты уверен? Разве это не работает для вас, как это? - person Mateusz Piotrowski; 13.10.2016
comment
@TomNorway Я протестировал его, и он работает без расширения .git. Вы используете GitHub? - person Mateusz Piotrowski; 13.10.2016
comment
Я действительно делаю. Должен признаться, что не проверял - моя ошибка. Я тестировал только .git, который, как я полагал, был необходим. - person TomNorway; 13.10.2016
comment
У меня это не работает - git fetch theirusername возвращает fatal: 'username' does not appear to be a git repository - person anks; 20.03.2018
comment
@anks Ваше сообщение об ошибке выглядит странно. - person Mateusz Piotrowski; 20.03.2018
comment
@MateuszPiotrowski да, ну, я неправильно использовал первую команду (пропустил их имя пользователя после добавления). простите :) - person anks; 02.04.2018