Я створюю нову філію в Git:
git branch my_branch
Штовхати його:
git push origin my_branch
Тепер скажіть, що хтось вніс деякі зміни на сервері, і я хочу вийти з нього origin/my_branch. Я згоден:
git pull
Але я отримую:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "my_branch"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
Я дізнався, що я можу змусити це працювати з:
git branch --set-upstream my_branch origin/my_branch
Але навіщо мені це робити для кожної створеної нами гілки? Хіба не очевидно , що якщо я натискаю my_branchна origin/my_branch, то я хотів би, щоб тягнути origin/my_branchв my_branch? Як я можу зробити це поведінкою за замовчуванням?
--set-upstreamопція застаріла. Ви повинні використовувати --trackабо --set-upstream-toзамість цього.
--set-upstreamзастарілий, то, можливо, git devs повинен видалити його з довідкового повідомлення, яке відображається, коли ви запускаєте git pushбез параметрів і не встановлено верхній потік?
git branch --set-upstreamзастарілий. git push --set-upstreamне.
branch.autosetupmergeозначає, що конфігурація висхідної лінії для нової гілки автоматично встановлюється лише при створенні гілки з гілки віддаленого відстеження (наприклад<remote-name>/<branch-name>) (див. Git-config (1) ). Ви, ймовірно, створюєте свої філії з існуючих місцевих гілок. Якщо ви ефективно розгалужуєтесь безпосередньо від кінця віддаленої гілки (незважаючи на те, що перебуваєте на локальній гілці), тоді ви можете використовуватиgit branch my_branch <remote-name>/<branch-name>для автоматичного налаштування конфігурації вище за потоком.