Да. В частности, имя ветки удаленного отслеживания подобно origin/A
на самом деле является локальной сущностью, а git branch --set-upstream-to
или git checkout --track
использует эту локальную сущность, не связываясь с ней еще один Git.
Обратите внимание, однако, что имена в пространстве имен refs/remotes/
автоматически создаются или обновляются , а иногда автоматически уничтожаются , git fetch
и git push
. При извлечении или удалении с remote с именем origin
, git fetch
и git push
будут обновляться соответствующие имена удаленного отслеживания на основе результатов выборки или отправки. Точнее, выполнение git fetch origin
будет соответствовать спецификации remote.origin.fetch
. По умолчанию refspec является +refs/heads/*:refs/remotes/origin/*
. Если Git по URL-адресу, хранящемуся в remote.origin.url
, имеет origin/A
, это приводит к созданию или обновлению refs/remotes/origin/A
в это время.
Если вы используете опцию --prune
или устанавливаете любую из опций, которая выбирает обрезку - я настраиваю fetch.prune = true
, например, иногда - тогда эта же git fetch origin
удалит вашу собственную refs/remotes/origin/A
если на Git нет refs/heads/A
в origin
.
Если вы не заботитесь об этих автоматических операциях, существует только требование, чтобы ваш собственный локальный Git налагал, когда ваш собственный Git отправляется для установки полей из двух частей для ветви A
, так что его восходящий поток равен origin/A
. Это требование заключается в том, что ваш локальный репозиторий должен иметь ссылку с именем refs/remotes/origin/A
. Если у вас его еще нет, введите команду:
git update-ref refs/remotes/origin/A <valid-commit-specifier>
создаст его, не связываясь с Git по URL (и, следовательно, независимо от того, есть ли сейчас на этом Git refs/heads/A
). Пока не ясно, что вы хотели бы использовать здесь в качестве действительного спецификатора коммита. Идеальным значением будет то, что разрешает refs/heads/A
в Git по URL-адресу, хранящемуся в origin
, и чтобы найти это, вам нужно связаться с этим Git. Но любой корректный спецификатор коммитов подойдет, если вы не возражаете против git status
, производящего причудливые отсчеты впереди / позади.