Этот вопрос уже имеет ответ здесь:
В малопонятном жаргоне мерзавца, origin
и remote
то же самое? Или делает origin
обратиться к локальному каталогу?
В случае git push -u origin master
: Какая из следующей интерпретации корректна?
Цените любое разъяснение!
Ответы на мой вопрос разъяснили две проблемы для меня:
origin
относится к удаленному repo, а не локальной клонированной копии удаленного repo. Это не ясно, когда каждый читает это origin
псевдоним remote
и создается во время git clone
origin
относится к удаленному repo в git push -u origin master
потому что локальные копии repo подразумеваются, и "редко ссылался". В малопонятном жаргоне мерзавца origin
просто имя по умолчанию для удаленного, от которого был первоначально клонирован repo. Это, возможно, одинаково назвали source
или remote1
или всего remote
.
Помнят, что git
одноранговая, распределенная система, не один с любым встроенным понятием клиента/сервера, ведущего устройства/ведомого устройства, родительские/дочерние отношения (хотя они могли бы быть наложены на него пользователем в конкретном сценарии).
Все пульты ДУ равны. origin
просто (и буквально), первое среди тех равняется (для клонированного repo). :)
И поскольку Jan указывает в комментариях, имя, связанное с каждым удаленным, предназначается для Вашего удобства. Если Вы находите, что origin
действительно не работает на Вас затем, можно изменить его.
Что касается Ваших интерпретаций push
оператор, Ваше первое является самым близким к тому, чтобы быть корректным, но команда нажатия, как записано продвинет локальное master
ответвление к эти master
ответвление по удаленному, определенному (локально настроенный) имя origin
.
, Если нет никакого master
ответвление в удаленном затем, каждый будет создан.
Полное изложение команды нажатия и флагов, опции и т.д. находятся, конечно, в документах .
, Вы редко (если когда-нибудь) обращаетесь к 'локальному' repo явно, так как Ваши операции выполняются в контексте repo.
Нет, они не имеют в виду того же самого.
remote
, в git
- говорят, относится к любому удаленному репозиторию, такому как Ваш GitHub или другой git
сервер.
origin
, условно, удаленное имя по умолчанию в git
. Когда Вы делаете git clone <url>
, <url>
автоматически добавляется к Вашему локальному repo под именем origin
. Можно, конечно, добавить другие пульты ДУ под различными именами с помощью git remote add
.
то, Когда Вы делаете git push -u origin master
, что это означает, является "нажатием все от моего локального ведущего устройства к удаленному именованному origin
". Структура этой команды является, конечно, более общей - более общая форма git push -u <remote> <branch>
, который продвинет ответвление, названное branch
к обозначенному удаленному, создавая ее в дальнем конце, если удаленное не будет уже иметь его (это - то, что эти -u
флаг делает).
, Поскольку дальнейшее приложение, git push
, по умолчанию, продвинет текущее ответвление к [1 115], соответствуя git push origin <current-branch>
.
У Вас может быть несколько пультов ДУ, каждый с другим именем - таких как "источник" по умолчанию
, Ваш вопрос делает предположение, что Вам в настоящее время проверяли основное ответвление.
git push -u origin master
Нажатие локальное ответвление, названное ведущим устройством к "источнику", удаленному как ответвление, названное ведущим устройством. Флаг-u говорит локальному мерзавцу отслеживать то удаленное ответвление как в восходящем направлении к Вашему локальному ответвлению.
удаленный просто слово: имя для использования для идентификации некоторого другого репозитория Мерзавца где-нибудь.
строка origin
является именем по умолчанию (исключительного) удаленного, которое git clone
вставляет автоматически, когда Вы клонируете от некоторого другого ("источник" - al) репозиторий Мерзавца. Можно выбрать некоторое другое имя и/или добавить больше пультов ДУ. Каждый удаленный имеет, по крайней мере, URL, который является, где другой репозиторий должен быть найден.
Для git push
, третьи word— корректируют это число в случае необходимости, если Вы добавляете различные флаги; в этом случае Вы добавили -u
поэтому теперь, это - четвертый word—, обычно название некоторых удаленных.
остающиеся слова - весь refspecs, который может быть получен в итоге (хотя не 100% точно... на самом деле, меньше чем 50% точно, в зависимости от того, как Вы рассчитываете :-)) как [1 120] пара имен ответвления, разделенных двоеточием .
, Если Вы написали всего одно имя ответвления как master
, Мерзавец берет это для значения "использования (часть) восходящий поток, если Вы установлены, иначе используйте то же имя после двоеточия". Обычно восходящий поток, если установлено, имеет то же основное имя, таким образом master
обычно завершает значение master:master
. Мерзавец отправляет them— Мерзавец в URL†remote” фиксации, найденные на [1 121] Ваш ответвление (имя слева), и затем просит, чтобы они установили их , ответвление (имя справа) к той же подсказке фиксирует, Вы просто стремились к тому ответвлению.
, Если Вы не вставляете refspecs, значение по умолчанию Мерзавца зависит от Вашей версии Мерзавца. Начиная с версии 2.0 Мерзавца значение по умолчанию должно продвинуть Ваш текущее ответвление к ответвлению того же имени на удаленном.
Эти -u
флаг говорит git push
, что, если нажатие успешно выполняется, оно должно устанавливать восходящий поток для ответвления, которое Вы просто продвинули.
восходящий из ответвления прибывает в две части: название удаленного, и название ответвления по этому удаленному. Так как Вы дали git push
и items— название удаленного был origin
, и ответвление было вторым (постдвоеточие) master
от подразумеваемого master:master
от [1 113] — это, если это успешно выполнится, то установит восходящий поток для [1 114] к [1 115].
( Редактирование : Вы могли бы, вполне законно, задаться вопросом, куда эти /
прибыл из в восходящий установка [1 117]. Это - частично исторический артефакт. К сожалению, это приводит к огромным суммам беспорядка. На данный момент просто имейте в виду, что удаленный , ответвление , и удаленно отслеживающее ответвление является всеми разными вещами в Мерзавце. Они все связаны различными способами, но важно помнить, что они не то же, и условия имеют очень определенные значения. Дорожка Word также перегружается. Новый термин восходящий лучше, но не все описания используют его.)
Нет, remote
первичная структура origin
. Это - просто имя по умолчанию remote
, Мерзавец создает, когда Вы клонируете репозиторий.