Что такое «происхождение» в Git? - PullRequest
529 голосов
/ 02 марта 2012

Когда я бегу:

git push origin branchname

Что такое origin и почему я должен набирать его перед именем ветви?

Ответы [ 10 ]

524 голосов
/ 02 марта 2012

origin - это псевдоним в вашей системе для определенного удаленного хранилища. На самом деле это не свойство этого хранилища.

Делая

git push origin branchname

Вы говорите, что хотите отправить в хранилище origin. Нет необходимости называть удаленный репозиторий origin: фактически, тот же репозиторий может иметь другой псевдоним для другого разработчика.

Remotes - это просто псевдоним , в котором хранится URL-адрес хранилища. Вы можете увидеть, какой URL принадлежит каждому пульту, используя

git remote -v

В команде push вы можете использовать пульты или вы можете просто использовать URL напрямую. Пример, который использует URL:

git push git@github.com:git/git.git master
135 голосов
/ 28 марта 2014

origin - это , а не имя удаленного хранилища.Это скорее локальный псевдоним , установленный в качестве ключа вместо URL-адреса удаленного репозитория.

Это позволяет пользователю не вводить весь удаленный URL-адрес при запросе push.

Это имя установлено по умолчанию и для соглашения Git при первом клонировании с пульта.

Это псевдоним не является жестко запрограммированным и может быть изменен с помощью следующей командной строки:

git remote rename origin mynewalias

Для получения дополнительных разъяснений посмотрите http://git -scm.com / docs / git-remote .

69 голосов
/ 02 марта 2012

Git имеет концепцию «удаленных», которые являются просто URL-адресами других копий вашего хранилища. Когда вы клонируете другой репозиторий, Git автоматически создает удаленный сервер с именем «origin» и указывает на него.

Вы можете увидеть больше информации о пульте, набрав git remote show origin.

38 голосов
/ 02 марта 2012

origin - это значение по умолчанию псевдоним для URL вашего удаленного хранилища.

20 голосов
/ 29 марта 2017

Simple!«origin» - это то, что вы называли своим удаленным репозиторием, когда запускали команду, подобную этой:

git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git

С тех пор Git знает, что «origin» указывает на этот конкретный репозиторий (в данном случае репозиторий GitHub),Вы могли бы назвать его "github" или "репо" или как угодно.

17 голосов
/ 07 сентября 2014

Меня это тоже смутило, и вот что я узнал ниже.

Когда вы клонируете репозиторий, например, из GitHub:

  • origin - это псевдоним для URL, с которого вы клонировали репозиторий. Обратите внимание, что вы можете изменить этот псевдоним.

  • В удаленном хранилище есть одна ветвь master (с псевдонимом origin). Существует также еще одна ветвь master, созданная локально.

Дополнительную информацию можно найти в этом вопросе SO: Разветвление Git: мастер против источника / мастер против удаленных / источник / мастер

11 голосов
/ 09 марта 2017

Когда вы клонируете репозиторий с помощью git clone, он автоматически создает удаленное соединение с именем origin, указывающее назад на клонированный репозиторий.Это полезно для разработчиков, создающих локальную копию центрального репозитория, поскольку предоставляет простой способ извлекать изменения из исходной системы или публиковать локальные коммиты.Такое поведение также объясняет, почему большинство проектов на основе Git называют свое центральное хранилище.

2 голосов
/ 06 августа 2018

Лучший ответ здесь:

https://www.git -tower.com / learn / git / глоссарий / origin

В Git «origin»это сокращенное имя для удаленного репозитория, из которого изначально был клонирован проект.Точнее, он используется вместо URL этого исходного хранилища - и, следовательно, делает ссылки намного проще.

0 голосов
/ 20 июня 2019

В других ответах говорится, что origin - это псевдоним для URL удаленного хранилища, который не совсем точен.Следует отметить, что адрес, начинающийся с http, представляет собой URL, а адрес, начинающийся с git@, представляет собой URI или универсальный идентификатор ресурса.

Все URL-адреса являются URI, ноне все URI являются URL-адресами.

Короче говоря, когда вы набираете git remote add origin <URI>, вы говорите своему локальному git, что всякий раз, когда вы используете слово origin, вы на самом деле имеете в виду указанный вами URI.Думайте об этом как о переменной, содержащей значение.

И точно так же, как о переменной, вы можете назвать ее как угодно (например, github, heroku, destination и т. Д.).

0 голосов
/ 10 февраля 2019

С https://www.git -tower.com / учить / git / глоссарий / происхождение :

В Git «origin» - это сокращенное имя для удаленного репозитория, из которого изначально был клонирован проект. Точнее, он используется вместо URL этого исходного хранилища - и, следовательно, делает ссылки намного проще.

Обратите внимание, что происхождение отнюдь не "волшебное" имя, а просто стандартное соглашение. Хотя имеет смысл оставить это соглашение без изменений, вы можете прекрасно переименовать его, не теряя никакой функциональности.

В следующем примере параметр URL для команды «клон» становится «источником» для клонированного локального репозитория:

git clone https://github.com/gittower/git-crash-course.git
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...