git set-upstream-to = origin / master (локальная копия удаленного) - PullRequest
0 голосов
/ 22 октября 2018

Я прочитал много ответов о «origin / master», где говорится, что это локальная копия удаленного источника master-узла филиала.Я запутался, когда прочитал о set-upstream-to, где он должен ссылаться на удаленный мастер ветвей, поэтому кто-нибудь может объяснить, почему set-upstream-to ссылается на локальную копию вместо удаленной?как git push origin master не git push origin/master

1 Ответ

0 голосов
/ 22 октября 2018

У вас, кажется, есть путаница в ссылках в основных командах Git.И у вас должно быть замешательство, потому что это сбивает с толку.

Локальная ветка master, которая существует только в вашем локальном репозитории Git, - это то, чем вы занимаетесь большую часть своей реальной работы по разработке.Аналогично, существует также ветвь с именем master, которая существует на удаленном компьютере.Теперь, для беспорядка, есть третья ветвь, названная origin/master.Это локальная ветка, которая существует в вашем локальном репо.Он существует главным образом, чтобы служить прокси для истинной удаленной ветви master.Всякий раз, когда вы синхронизируете с удаленной веткой master, локально вы фактически используете origin/master.

Выполнение git pull origin master фактически идентично этому (при условии, что вы используете стратегию слияния по умолчанию):

git fetch origin
git merge origin/master

Первый шаг, git fetch origin, обновляет локальную ветвь отслеживания origin/master с последними изменениями, так что она отражает истинную ветку master на пульте.Затем он сливается с вашей локальной веткой master, используя origin/master.Вот краткое резюме:

master        | the master branch (either local or remote)
origin master | the master branch on the remote (as in the git pull command)
origin/master | local tracking branch for master which mirrors the remote version

Итак, учитывая, что origin/master - это фактическая ветвь, которая отслеживает истинную удаленную ветку master, мы можем сказать Git использовать origin/master в качестве отслеживанияпереход через:

# from local master branch
git --set-upstream-to origin/master

Обратите внимание, что если вы создаете или извлекаете master локально, Git обычно создает origin/master в качестве ветви отслеживания по умолчанию за кулисами.Таким образом, на практике вам, вероятно, не придется использовать --set-upstream-to очень часто.

...