Есть несколько способов установить восходящий поток, одновременно нажимая или не нажимая.
Если magit-push-current-set-remote-if-missing
не nil
(по умолчанию), то вы увидите что-то вроде:
Push feature to
p pushRemote, after setting that
u @{upstream}, after setting that
e elsewhere
Чтобы нажать origin/feature
и установить его как восходящий, нажмите, uа затем, RETчтобы принять кандидата на завершение по умолчанию.
Если magit-push-current-set-remote-if-missing
есть nil
, то вы увидите это вместо:
Push feature to
e elsewhere
Если вы нажали pсейчас, то вам скажут, что восходящий поток не настроен (это означает, что вы не можете перейти в восходящий поток, если нет восходящего потока).
Но если magit-push-current-set-remote-if-missing
есть nil
, то список переключателей будет представлен --set-upstream
, так что вы можете использовать его P - u pкак обычно (за исключением того, что второй символ p в нижнем регистре). Однако есть одно осложнение: после изменения значения magit-push-current-set-remote-if-missing
вы должны перезапустить Emacs, --set-upstream
чтобы появиться или исчезнуть.
Наконец , вы можете установить вверх по течению , используя «набор вверх по течению (и больше ничего не делать)» команду: b uorigin/master
RET. Обратите внимание, что при использовании этого подхода вы можете выбрать только ту ветвь, которая уже существует.
Но было бы лучше настроить push-пульт и нажать на него. Чтобы узнать больше о push-remote и его отличиях от восходящего потока, см. Раздел « Ветвление» в информационном руководстве (веб-версия еще не обновлена).
По сути, восходящая ветвь - это ветвь, в которую в конечном итоге будет добавлена ваша функциональная ветвь (путем объединения или перебазирования, а не путем нажатия) origin/master
. А push-remote - это то место, куда вы перемещаете ветви функций, пока еще работаете с ними, или чтобы кто-то другой мог объединить их. Если локальная ветвь названа, feature
а push-remote - my-fork
, то нажатие этой ветки с помощью P ppush приведет к my-fork/feature
. («Push-to-branch» не может быть настроен, имя ветви на push-remote всегда совпадает с локальным именем.)
Так что, хотя ваш вопрос был чем-то вроде «как я проталкиваю к восходящему каналу, одновременно настраивая восходящий поток», я рекомендую вообще не переходить к восходящему потоку, а вместо этого нажимать на push-пульт.
Если вы не изменили значение, magit-push-current-set-remote-if-missing
вы можете настроить push-пульт с помощью P psome-remote
RET. Но, поскольку вы, скорее всего, отправляете все ветви функций на один и тот же пульт, лучше установить push-пульт один раз для всех веток и покончить с этим: bи затем M-pдо тех пор, пока не будет выбран правильный пульт.
Также обратите внимание, что обычно нет необходимости явно устанавливать восходящую ветвь. Когда вы создаете новую ветвь и выбираете удаленную ветвь в качестве отправной точки, она используется в качестве восходящей.
К сожалению, отправной точкой обычно является локальная ветвь, и в этом случае Git по умолчанию не использует ее в качестве восходящего потока. Но это легко исправить, выполнив один раз:
git config --global branch.autoSetupMerge always
Значение по умолчанию: true
«установить начальную точку как восходящую, если это удаленная ветвь».
Кстати, то же самое относится и к пуш-пульту. Это тоже обычно следует устанавливать полуавтоматически в «новых» репозиториях. Если вы клонируете репозиторий, вас спросят, хотите ли вы использовать его origin
как push-пульт. Вы должны ответить «да», если только вы не собираетесь добавить другой пульт, скажем my-fork
, который должен использоваться как push-пульт. Когда вы добавляете новый пульт с помощью M aи remote.pushDefault
еще не настроен, вас спросят, хотите ли вы использовать недавно добавленный пульт в качестве push-пульта.
Это можно настроить с помощью magit-clone-set-remote.pushDefault
и magit-remote-add-set-remote.pushDefault
.
Еще один расширенный вариант magit-branch-prefer-remote-upstream
, который по умолчанию nil
. Если вы установите его t
, а затем выберете локальную ветвь в качестве отправной точки для новой ветки, тогда восходящий поток начальной точки может (в соответствии с некоторыми правилами см. Doc-string) использоваться в качестве восходящего потока вместо сама отправная точка.
<remote>/<branch>
часть была случайно опущена (см. Этот комментарий ). В то же время, вы можете установитьmagit-push-current-set-remote-if-missing
на ноль.