Каково различие между 'источником' и 'удаленный' в командах мерзавца? [дубликат]

Этот вопрос уже имеет ответ здесь:

В малопонятном жаргоне мерзавца, origin и remote то же самое? Или делает origin обратиться к локальному каталогу?

В случае git push -u origin master: Какая из следующей интерпретации корректна?

  1. "продвиньте все в восходящем направлении к удаленному repo, названному 'источником' и его ответвлением 'ведущее устройство'"
  2. "продвиньте все от локального возникновения repo названный 'источником' к восходящему 'основному' ответвлению"

Цените любое разъяснение!

Ответы на мой вопрос разъяснили две проблемы для меня:

  1. origin относится к удаленному repo, а не локальной клонированной копии удаленного repo. Это не ясно, когда каждый читает это originпсевдоним remote и создается во время git clone
  2. origin относится к удаленному repo в git push -u origin master потому что локальные копии repo подразумеваются, и "редко ссылался".
62
задан 9 August 2016 в 16:46

5 ответов

В малопонятном жаргоне мерзавца origin просто имя по умолчанию для удаленного, от которого был первоначально клонирован repo. Это, возможно, одинаково назвали source или remote1 или всего remote.

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

Все пульты ДУ равны. origin просто (и буквально), первое среди тех равняется (для клонированного repo). :)

И поскольку Jan указывает в комментариях, имя, связанное с каждым удаленным, предназначается для Вашего удобства. Если Вы находите, что origin действительно не работает на Вас затем, можно изменить его.

Что касается Ваших интерпретаций push оператор, Ваше первое является самым близким к тому, чтобы быть корректным, но команда нажатия, как записано продвинет локальное master ответвление к эти master ответвление по удаленному, определенному (локально настроенный) имя origin.

, Если нет никакого master ответвление в удаленном затем, каждый будет создан.

Полное изложение команды нажатия и флагов, опции и т.д. находятся, конечно, в документах .

, Вы редко (если когда-нибудь) обращаетесь к 'локальному' repo явно, так как Ваши операции выполняются в контексте repo.

62
ответ дан 31 October 2019 в 14:14

Нет, они не имеют в виду того же самого.

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>.

14
ответ дан 31 October 2019 в 14:14

У Вас может быть несколько пультов ДУ, каждый с другим именем - таких как "источник" по умолчанию

, Ваш вопрос делает предположение, что Вам в настоящее время проверяли основное ответвление.

git push -u origin master

Нажатие локальное ответвление, названное ведущим устройством к "источнику", удаленному как ответвление, названное ведущим устройством. Флаг-u говорит локальному мерзавцу отслеживать то удаленное ответвление как в восходящем направлении к Вашему локальному ответвлению.

12
ответ дан 31 October 2019 в 14:14

удаленный просто слово: имя для использования для идентификации некоторого другого репозитория Мерзавца где-нибудь.

строка 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 также перегружается. Новый термин восходящий лучше, но не все описания используют его.)

5
ответ дан 31 October 2019 в 14:14

Нет, remote первичная структура origin. Это - просто имя по умолчанию remote, Мерзавец создает, когда Вы клонируете репозиторий.

[еще 115] информация в этом вопросе: , Что такое “origin” в Мерзавце?

2
ответ дан 31 October 2019 в 14:14

Другие вопросы по тегам:

Похожие вопросы: