Я создаю новую ветку в 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 должны удалить его из справочного сообщения, которое отображается, когда вы запускаете 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>
для автоматической настройки исходной конфигурации.