Есть несколько способов установить восходящий поток, одновременно нажимая или не нажимая.
Если 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/masterRET. Обратите внимание, что при использовании этого подхода вы можете выбрать только ту ветвь, которая уже существует.
Но было бы лучше настроить 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-remoteRET. Но, поскольку вы, скорее всего, отправляете все ветви функций на один и тот же пульт, лучше установить 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на ноль.