Чем отличаются понятия "Обновиться из origin" и "Обновиться из upstream"?

Обновиться из апстрима — обновить свою локальную версию форка до последней версии основного репозитория, от которого сделан форк.

Обновиться из ориджина — обновить свою локальную версию репозитория до последней удалённой версии этого репозитория.

Я нашел эти определения, но не могу понять в чем их разница. В моём понимании термин "репозиторий" - означает каталог с файлами проекта который находится на сервере GitHub. В чем разница между понятиями "локальная версия форка" и "локальная версия репозитория" если и то и другое является копией "изначального репозитория"?

Чем отличается "последняя версия основного репозитория от которого сделан форк" от "последней удаленной версии этого репозитория"? Основной репозиторий и удаленная версия этого репозитория это не одно и тоже?

Почему Upstream подразумевает изначально созданный проект, а origin подразумевает мою скопированную копию основного проекта находящуюся на github, если само слово origin указывает на изначально созданный проект, по логике, но на его месте стоит слово upstream? это сбивает с толку.


Ответы (1 шт):

Автор решения: user7860670

Для начала "репозиторий" понимается неправильно. git - это система с распределенным репозиториями. После выполнения fork на github и clone на своей машите будет целых три независимых репозитория. origin - обычно используется в репозитории на машине пользователя в качестве алиаса для того удаленного репозитория, из которого был клонирован этот и куда будут отправляться изменения. upstream - обычно используется в репозитории на машине пользователя в качестве алиаса для того удаленного репозитория, из которого был форкнут тот репозиторий, из которого клонировали этот. На практике удаленных репозиториев может быть куда больше двух, соответственно можно делать и неограниченное количество произвольных алиасов для них.

введите сюда описание изображения

→ Ссылка