Існує кілька способів встановити верхню течію, одночасно натискаючи або не натискаючи.
Якщо 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-пульт та як він відрізняється від висхідного потоку, дивіться вузол розгалуження в інформаційному посібнику (веб-версія ще не оновлена).
В основному гілка вище за течією - це гілка, в яку, зрештою, буде об'єднана ваша галузь функцій (шляхом злиття чи перезавантаження, а не натисканням) origin/master
. І за допомогою пульта дистанційного керування ви натискаєте свої гілки функцій під час роботи над ними або так, щоб хтось інший міг їх об'єднати. Якщо локальна гілка названа, feature
а push-remote - my-fork
, натискання на цю гілку використовує P pби push my-fork/feature
. ("Поштовх до гілки" неможливо налаштувати, назва гілки на пульті дистанційного керування завжди те саме, що локальна назва.)
Тож, коли ваше запитання було чимось на кшталт "як я натискаю на висхідний потік, одночасно налаштовуючи висхідний потік", моя рекомендація взагалі не натискати на верхню течію, а замість цього натиснути на пульт дистанційного керування.
Якщо ви не змінили значення, magit-push-current-set-remote-if-missing
ви можете налаштувати push-remote за допомогою P psome-remote
RET. Але, оскільки ви, ймовірно, натискаєте всі гілки функцій на один і той же віддалений, краще встановити push-remote один раз для всіх гілок і зробити це з ним: bі тоді, M-pпоки не буде обраний правильний пульт.
Також зауважте, що, як правило, не потрібно явно встановлювати гілку вище. Коли ви створюєте нову гілку та вибираєте віддалену гілку як початкову точку, вона використовується як висхідна лінія.
На жаль, початковою точкою зазвичай є локальна гілка, і в такому випадку Git за замовчуванням не використовує її в якості висхідного потоку. Але це легко виправити, запустивши це один раз:
git config --global branch.autoSetupMerge always
Значенням за замовчуванням є true
, що означає "встановити початкову точку як вище, за умови, що це віддалена гілка".
До речі, те саме стосується і пуш-пульта. Це теж, як правило, слід встановлювати напівавтоматично у "нових" сховищах. Якщо ви клонуєте сховище, вас запитають, чи хочете ви використовувати його origin
як пульт дистанційного керування. Ви повинні відповісти "так", якщо ви не збираєтесь додати ще одне дистанційне, скажімо my-fork
, яке слід використовувати як пульт дистанційного керування. Коли ви додасте новий пульт дистанційного керування, M aале його remote.pushDefault
ще не встановлено, вам буде запропоновано запитувати, чи хочете ви використати щойно доданий пульт як пульт дистанційного керування.
Це можна налаштувати за допомогою 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
нуль.