Подтвердить что ты не робот

В чем разница между происхождением и восходящим потоком в GitHub?

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

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

4b9b3361

Ответ 1

Это следует понимать в контексте форков 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, сделав запрос на извлечение.

fork and upstream