Что такое "происхождение" в Git?

Когда я запускаю:

git push origin branchname

Что такое origin и зачем мне вводить его перед именем ветки?

Ответ 1

origin - это псевдоним в вашей системе для конкретного удаленного репозитория. Это не свойство этого репозитория.

Сделав

git push origin branchname

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

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

git remote -v

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

git push [email protected]:git/git.git master

Ответ 2

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

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

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

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

git remote rename origin mynewalias

Посмотрите на http://git-scm.com/docs/git-remote для дальнейших разъяснений.

Ответ 3

Git имеет понятие "пульты", которые являются просто URL-адресами других копий вашего репозитория. Когда вы клонируете другой репозиторий, Git автоматически создает удаленный объект с именем "origin" и указывает на него.

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

Ответ 4

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

Ответ 5

Просто! "origin" - это то, что вы называли своим удаленным репозиторием, когда запускали такую команду:

git remote add origin [email protected]:USERNAME/REPOSITORY-NAME.git

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

Ответ 6

Я тоже был смущен этим, и ниже я узнал.

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

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

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

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

Ответ 7

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

Ответ 8

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

https://www.git-tower.com/learn/git/glossary/origin

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

Ответ 9

С https://www.git-tower.com/learn/git/glossary/origin:

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

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

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

git clone https://github.com/gittower/git-crash-course.git

Ответ 10

Другие ответы говорят, что origin - это псевдоним URL удаленного хранилища, который не совсем точен. Следует отметить, что адрес, начинающийся с http - это URL, а адрес, начинающийся с [email protected] - это URI или универсальный идентификатор ресурса.

Все URL являются URI, но не все URI являются URL.

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

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

Ответ 11

удаленный (псевдоним URL хранилища) → источник (псевдоним восходящего потока) → мастер (псевдоним ветки);

  • remote, уровень такой же, как working directory, index, repository,

  • origin, локальная ветвь репозитория отображается на ветку удаленного репозитория