Нет, они очень разные.Первый параметр конфигурации, remote.<name>.push
устанавливает стандартную ссылку refspec для отправки, если никакая другая ссылка не указана.По умолчанию, выполнение git push origin
будет переводить каждую ветку в ветку с соответствующим именем, если ветка с таким именем уже существовала на удаленном компьютере.После выполнения:
git config remote.origin.push refs/heads/master:refs/heads/master
... вы обнаружите, что git push origin
просто подтолкнет master
к master
.
Другая команда, которую вы цитируете, git push -u origin master
, устанавливаетдве разные опции конфигурации, если отправка успешна:
branch.master.remote
установлен на origin
branch.master.merge
установлен на refs/heads/master
В сущности, это говорит о том, что master
в origin
следует рассматривать как "восходящую" ветку по умолчанию вашей ветви master
.Их наиболее очевидный эффект заключается в предоставлении действия по умолчанию для git pull
, когда вы находитесь на master
, но также используются в различных других ситуациях, таких как предоставление полезного сообщения в верхней части git status
, которое сообщает вам, гдеmaster
сравнивается с origin/master
.Эти параметры не , однако используются для информирования действия по умолчанию git push
и git push origin
, если вы не установили параметр конфигурации push.default
на tracking
(или upstream
в последних версиях).
Итак, в качестве очень приблизительной сводки установка remote.<name>.push
влияет на действие по умолчанию git push
, тогда как git push -u origin master
устанавливает параметры конфигурации, которые обычно влияют только на действие git pull
.