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

Ответы:

806

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

  • upstreamобычно относится к первоначальному репо, который вы разветвили
    (см. также « Определение« downstream»и upstream« »для более подробной информации о upstreamсроке)
  • 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чтобы тянуть и толкать , так как вы можете внести свой вклад в наше хранилище.

git pull
git push

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

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

вилка и вверх по течению

VonC
источник
11
Это также помогает узнать, что upstreamв целом: stackoverflow.com/questions/2739376/…
VonC
2
@MaxRydahlAndersen true, но мне нравится использовать Git без оболочки, поэтому я пока буду придерживаться этого соглашения (upstream и origin).
VonC
22
Безусловно лучшее объяснение того, как работают вилки, которое я видел. Вы получите мой голос.
CodeChimp
9
Отличная работа над визуалом. Очень прямой и понятный ответ. Это было именно то, что я искал.
Тайопи
1
@iamrudra, если git remote -v показывает один и тот же URL для источника и восходящего потока, тогда да, вы продвигаетесь к одному и тому же удаленному репо.
VonC