Если я нахожусь в ветке "Foo2" и выполняю "git push origin Foo", что произойдет? - PullRequest
2 голосов
/ 01 мая 2019

У меня была ветка - давайте назовем ее «Foo» - затем я разветвился от Foo, чтобы создать Foo2, Foo теперь является устаревшей веткой - моя текущая работа сосредоточена на Foo2.

Теперь я боюсь, что могу забыть, что я работаю над Foo2, и поэтому я могу сделать git push origin Foo (особенно вероятно из-за поведения bash по завершению табуляции). Я беспокоюсь, что это может как-то подтолкнуть изменения с Foo2 на Foo.

Итак, что же на самом деле произойдет?

1 Ответ

2 голосов
/ 01 мая 2019

Давайте проверим документацию для git push. Общая форма команды - git push <repository> <src>:<dst>, и мы хотим выяснить, что происходит, когда :<dst> опущено.

Если git push [<repository>] без какого-либо аргумента <refspec> установлен для обновления некоторого ref в пункте назначения с <src> с remote.<repository>.push конфигурационной переменной, часть :<dst> может быть опущена - такой толчок обновит ref, что <src> обычно обновляется без <refspec> в командной строке. В противном случае отсутствие :<dst> означает обновление той же ссылки, что и <src>.

.

(обещаю, я не скопировал это из git man page page .)

Так что все, что он делает, будет включать в себя именно то, что вы предоставили <src>, то есть, если вы не создадите больше коммитов в вашей локальной ветке Foo, запуск git push origin Foo не найдет ничего для нажмите, и удаленная ветка Foo останется неизменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...