Ответ 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
, сделав запрос на извлечение.