В чем разница между origin и upstream на GitHub? - PullRequest
323 голосов
/ 13 февраля 2012

В чем разница между origin и upstream на GitHub ?

Когда команда git branch -a выполнена, некоторые ветви имеют префикс origin (remotes/origin/..), а другие имеют префикс upstream (remotes/upstream/..).

1 Ответ

656 голосов
/ 13 февраля 2012

Это следует понимать в контексте форков GitHub (где вы создаете репозиторий GitHub на GitHub перед локальным клонированием этого форка).

  • upstream обычно относится к первоначальному репо, который вы разветвили
    (см. также « Определение« downstream »и« upstream »», чтобы узнать больше о upstream term)
  • origin - ваш форк: ваше собственное репо на GitHub, клон оригинального репо GitHub

Со страницы GitHub:

Когда репо клонируется, у него есть пульт по умолчанию origin, который указывает на ваш форк на GitHub, а не на исходное репо, из которого он был разветвлен.
Чтобы отслеживать исходное репо, вам нужно добавить еще один пульт с именем upstream

git remote add upstream git://github.com/<aUser>/<aRepo.git>

aUser/aRepo ссылкой на оригинального создателя и хранилище, которое вы разветвили)

Вы будете использовать upstream до выборки из исходного репо (чтобы синхронизировать локальную копию с проектом, в который вы хотите внести свой вклад).

git fetch upstream

(по умолчанию git fetch будет извлекать из origin по умолчанию, а здесь это не то, что нужно)

Вы будете использовать от origin до pull и push , так как вы можете внести свой вклад в свой собственный репозиторий.

git pull
git push

(опять же, без параметров, по умолчанию используется 'origin')

Вы внесете свой вклад в репо upstream, сделав запрос на получение .

fork and upstream

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