Origin
Коротко
Имя по умолчанию, под которым Git запоминает адрес удалённого репозитория, откуда проект был склонирован. Это обычный псевдоним, его можно сменить.
Что такое «Origin»
Работать с полным адресом вроде git@github.com:user/shop-theme.git в каждой команде неудобно, поэтому Git хранит удалённые репозитории под короткими именами. При клонировании он сам создаёт первое такое имя — origin. Слово ничем не выделено в протоколе: это просто запись в .git/config, и её можно переименовать, удалить или завести рядом другие.
Благодаря этому имени короткие команды git push origin main или git fetch origin понятны без расшифровки: «туда, откуда взяли».
origin/main — что это за ветка
После загрузки изменений в локальном репозитории появляются ветки вида origin/main. Это не сама удалённая ветка, а её слепок на момент последнего git fetch или git pull. Если коллега отправил новые коммиты час назад, а вы с тех пор ничего не загружали, origin/main об этом не знает. Отсюда частое недоумение: «Git пишет, что всё актуально», хотя на сервере уже есть новое.
Команды для работы с удалёнными репозиториями
git remote -v # список имён и адресов
git remote set-url origin git@gitlab.com:team/shop.git
git remote rename origin old-github
git remote add origin git@gitlab.com:team/shop.git
git clone -o company https://git.example.ru/shop.git
set-url нужен, когда репозиторий переехал на другую платформу или вы перешли с HTTPS на SSH: история остаётся прежней, меняется только адрес. Ключ -o при клонировании сразу задаёт другое имя вместо origin.
origin и upstream
Когда работа идёт через форк, удалённых репозиториев два. По соглашению origin указывает на вашу копию, куда у вас есть права на запись, а upstream — на исходный проект, из которого вы только получаете обновления. Технически имена можно поменять местами, но это запутает и вас, и любого, кто откроет инструкцию к проекту.

