Чем отличается `origin/master` от `master`?

master - это локальная ветка, представляющая текущее состояние вашего проекта на вашем компьютере. origin/master - это удаленная ветка, отражающая состояние ветки master в репозитории, связанном с псевдонимом origin (обычно это центральный репозиторий, с которого вы клонировали проект). origin/master - это копия удаленной ветки, хранящаяся локально, и ее необходимо обновлять командой git fetch или git pull.

Отличие между origin/master и master в Git заключается в следующем:

master (или main, если репозиторий использует эту ветку по умолчанию) - это локальная ветка, существующая в вашем локальном репозитории. Она представляет собой указатель на конкретный коммит в вашей локальной истории коммитов.

origin/master (или origin/main) - это удаленная ветка, которая является локальной копией состояния ветки master (или main) в удаленном репозитории, обычно именуемом origin (например, репозиторий на GitHub, GitLab или Bitbucket). Эта ветка не редактируется напрямую. Вместо этого, она обновляется, когда вы получаете изменения из удаленного репозитория с помощью команд git fetch или git pull. Фактически, origin/master - это кэшированный "снимок" состояния master на сервере в момент последнего обновления вашего локального репозитория.

Ключевые различия:

  • master - локальная ветка, которую вы редактируете и в которую вносите изменения.
  • origin/master - удаленная ветка, которая является локальной копией ветки master на сервере. Она доступна только для чтения.

Проще говоря:

master - это ваш рабочий экземпляр ветки, с которым вы непосредственно работаете.

origin/master - это ваша локальная "информация" о состоянии ветки master на удаленном сервере.

Пример:

Предположим, вы работаете над проектом и сделали несколько коммитов в своей локальной ветке master. Затем другой разработчик внес изменения в ветку master на удаленном репозитории (origin). Ваша локальная ветка master и ваша локальная копия удаленной ветки origin/master разойдутся. Чтобы синхронизировать свою локальную копию удаленной ветки, вы должны использовать команду git fetch origin или git pull origin master. Тогда origin/master обновится, отражая текущее состояние master на удаленном сервере.

0