Git ветвь отслеживания с другим именем

У меня есть репо, которое отслеживает не-дефолтные ветки. Итак, есть локальная ветвь с именем "master", которая должна отслеживать "origin/master-13.07". Я сделал "push -u", и я считаю, что этого должно быть достаточно, ветвь отслеживается. Вывод git branch -vv:

C:\work\repo>git branch -vv
  stuff     68792df [origin/stuff-13.07] Small bugfix
* master 68792df [origin/master-13.07: ahead 1] Small bugfix

Вывод git status

C:\work\repo>git status
# On branch master
# Your branch is ahead of 'origin/master-13.07' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

Все кажется правильным, но когда я просто использую "git push" (поскольку git рекомендует мне выше), он терпит неудачу:

C:\work\repo>git push
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:master-13.07

To push to the branch of the same name on the remote, use

    git push origin master

Да, я знаю, что имя не совпадает, это именно то, что я хочу, и я сказал это git с помощью кнопки "push -u". Почему я не могу просто использовать "push"?

C:\work\repo>git --version
git version 1.8.3.msysgit.0

C:\work\repo>git config push.default
simple

Ответы

Ответ 1

Ok. С добавленной информацией, я думаю, вам просто нужно изменить push.default на значение upstream.

Вероятно, вы настроили фактическое значение после обновления Git и увидели это сообщение:

warning: push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global push.default simple

В соответствии с документацией значение simple должно отклонять нажатие, когда имена веток различны. См. Git Config (поиск push.default).

Ответ 2

С Git 2.20 (Q4 2018) совет немного изменится.

См совершать 8247166 (13 Nov 2018) по Эвар Arnfjord Bjarmason (avar).
(Слияние с Юнио С Хамано - gitster - в совершении 2c23f0b, 01 декабря 2018 года)

push: изменить бесполезно неоднозначный пример по ошибке

Измените пример push, добавленный в b55e677 ("push: ввести новый режим push.default " simple ", 2012-04-24, v1.7.11-rc0) всегда означает то же самое, независимо от того, является ли текущая настройка" simple ", или нет.

Эта ошибка испускается только при " simple ", но сообщение объясняет пользователю, что эти два вызова могут получить два вида разных действий.

Позвольте использовать:

  • " git push <remote> HEAD ", который всегда означает нажатие текущего имени ветки на этот удаленный,
  • вместо " git push <remote> <current-branch-name> ", который будет делать это под " simple ", но не гарантируется в разделе " upstream ".