Когда я запускаю:
git push origin branchname
Что такое origin
и зачем мне вводить его перед именем ветки?
Когда я запускаю:
git push origin branchname
Что такое origin
и зачем мне вводить его перед именем ветки?
origin
- это псевдоним в вашей системе для конкретного удаленного репозитория. Это не свойство этого репозитория.
Сделав
git push origin branchname
вы говорите, чтобы нажать на репозиторий origin
. Нет требования назвать удаленный репозиторий origin
: на самом деле один и тот же репозиторий может иметь другой псевдоним для другого разработчика.
Пульты - это просто псевдоним, который хранит URL-адрес репозиториев. Вы можете видеть, какой URL-адрес принадлежит каждому удаленному устройству, используя
git remote -v
В команде push
вы можете использовать пульты дистанционного управления или просто использовать URL-адрес напрямую. Пример использования URL:
git push [email protected]:git/git.git master
origin
не является именем удаленного хранилища. Это скорее локальный псевдоним, установленный в качестве ключа вместо URL удаленного хранилища.
Это избавляет пользователя от необходимости вводить весь удаленный URL при запросе push.
Это имя установлено по умолчанию и используется Git при первом клонировании с пульта.
Это псевдоним не является жестко запрограммированным и может быть изменен с помощью следующей командной строки:
git remote rename origin mynewalias
Посмотрите на http://git-scm.com/docs/git-remote для дальнейших разъяснений.
Git имеет понятие "пульты", которые являются просто URL-адресами других копий вашего репозитория. Когда вы клонируете другой репозиторий, Git автоматически создает удаленный объект с именем "origin" и указывает на него.
Вы можете увидеть дополнительную информацию о пульте дистанционного управления, набрав git remote show origin
.
origin
является псевдоним по URL-адресу вашего удаленного репозитория.
Просто! "origin" - это то, что вы называли своим удаленным репозиторием, когда запускали такую команду:
git remote add origin [email protected]:USERNAME/REPOSITORY-NAME.git
С тех пор Git знает, что "origin" указывает на этот конкретный репозиторий (в данном случае GitHub). Вы могли бы назвать это "GitHub" или "Репо" или как угодно.
Я тоже был смущен этим, и ниже я узнал.
Когда вы клонируете репозиторий, например, из GitHub:
origin
- это псевдоним для URL-адреса, с которого вы клонировали репозиторий. Обратите внимание, что вы можете изменить этот псевдоним.
В удаленном репозитории существует одна ветвь master
(с псевдонимом origin
). Существует также другая ветвь master
, созданная локально.
Дополнительную информацию можно найти в этом вопросе SO: Git ветвление: мастер против источника/хозяина против удаленных объектов/источник/мастер
Когда вы клонируете репозиторий с помощью git clone
, он автоматически создает удаленное соединение под названием origin
, указывающее обратно в клонированный репозиторий. Это полезно для разработчиков, создающих локальную копию центрального репозитория, поскольку он обеспечивает простой способ отслеживания изменений или публикации локальных коммитов. Такое поведение также объясняет, почему большинство проектов, основанных на Git, называют их центральным источником репозитория.
Лучший ответ здесь:
https://www.git-tower.com/learn/git/glossary/origin
В Git "origin" - это сокращенное имя для удаленного репозитория, из которого изначально был клонирован проект. Точнее, он используется вместо этого исходного URL-адреса хранилища - и, таким образом, делает ссылки намного проще.
С https://www.git-tower.com/learn/git/glossary/origin:
В Git "origin" - это сокращенное имя для удаленного репозитория, из которого изначально был клонирован проект. Точнее, он используется вместо этого исходного URL-адреса хранилища - и, таким образом, делает ссылки намного проще.
Обратите внимание, что происхождение отнюдь не "волшебное" имя, а просто стандартное соглашение. Хотя имеет смысл оставить это соглашение без изменений, вы можете прекрасно переименовать его, не теряя никакой функциональности.
В следующем примере параметр URL команды "клон" становится "источником" для клонированного локального репозитория:
git clone https://github.com/gittower/git-crash-course.git
Другие ответы говорят, что origin
- это псевдоним URL удаленного хранилища, который не совсем точен. Следует отметить, что адрес, начинающийся с http
- это URL, а адрес, начинающийся с [email protected]
- это URI или универсальный идентификатор ресурса.
Все URL являются URI, но не все URI являются URL.
Короче говоря, когда вы вводите git remote add origin <URI>
вы говорите своему локальному git, что всякий раз, когда вы используете слово origin
вы на самом деле имеете в виду указанный вами URI. Думайте об этом как о переменной, содержащей значение.
И так же, как переменная, вы можете назвать ее как угодно (например, github
, heroku
, destination
и т.д.).
удаленный (псевдоним URL хранилища) → источник (псевдоним восходящего потока) → мастер (псевдоним ветки);
remote
, уровень такой же, как working directory
, index
, repository
,
origin
, локальная ветвь репозитория отображается на ветку удаленного репозитория