git push remote-name some-name
попытки нажать любую местного ветвь с именем some-name
для удаленного филиала также имени some-name
решен в remote-name/some-name
. Под капотом он ищет имена ветвей под refs
в каждом локальном (локальном, удаленном) месте.
Поскольку ваша местная копия development
не была изменена, вы получите сообщение о том, что оно актуально, ничего не нужно нажать.
Альтернативная версия
git push remote-name HEAD:development
пропускает часть о поиске соответствующих имен филиалов в локальных и удаленных refs
, потому что вы дали ему явную ветвь через HEAD
.
Он по-прежнему использует удаленный refs
для определения удаленной ветви development
. Но затем он использует HEAD
текущей ветки (ваша новая ветка test
) для совершения токов.
Если вы хотите просто сделать git push
из test
ветви и правильно толкать от test
к remote/development
, вы можете настроить поведение по умолчанию push
к «вверх» установкам (обратите внимание, что термин «отслеживание» является старым термином для " вверх по течению ", что является предпочтительным).
ли
git config --global push.default upstream
, чтобы убедиться, что простой git push
будет пытаться толкать от текущей ветви его зарегистрированного вверх по течению отрасли.
Без установки, до мерзавец версии 2.0, режим по умолчанию для простых git push
результатов в попытке подтолкнуть все локальные ветки на вышестоящие ветви с соответствующими именами на своих настроенных пультов ДУ. Для git 2.0 и новее значение по умолчанию - simple
, которое действует как upstream
, за исключением того, что он также не может нажать, если текущая ветка не имеет то же имя, что и его настроенный пульт.
Установка «вверх по течению» является хорошей, поскольку (а) она позволяет легко нажимать ветви независимо от того, соответствуют ли их имена их восходящим названиям; (b) для версий до 2.0 он ограничивает незакрытый вызов git push
, влияя только на текущую ветку, поэтому, если вы активно развиваетесь на нескольких ветвях, git push
больше не будет непреднамеренно толковать другие работы, не связанные с текущей работой отрасли; (c) вам не понадобится форма git push, которая конкретно называет удаленный и ветви, если вы не пытаетесь нажать на какую-то ветвь, которая не настроена вверх по течению для вашей текущей ветви, - и я бы сказал, что это делает больше всего смысл: вам нужно только подробно рассказать о ветвях, если вы не отталкиваетесь от локальной ветви до ее естественной настроенной целевой цели. Даже настройка 2.0 simple
не удовлетворяет этому.
remote-name
часто бывает origin
, но может быть любым настроенным удаленным, добавленным через различные команды git или непосредственно, как в файле .gitconfig.
Возможный дубликат [git push origin head?] (Http://stackoverflow.com/questions/11731414/git-push-origin-head) – Basilevs
Это не, @Basilevs. Он задает разницу между нажатием на исходный мастер и начальную головку. Я прошу разницу между начальником и начальником HEAD: master. –