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
".