Какова цель git-отслеживания ветвей?
-
12-11-2019 - |
Вопрос
Я создал ветку отслеживания, чтобы whowasout.com отслеживалось whowasout.com/master
$ git remote -v
origin git@github.com:venkatd/whowentout.git (fetch)
origin git@github.com:venkatd/whowentout.git (push)
whowasout.com git@git01.phpfog.com:whowasout.com (fetch)
whowasout.com git@git01.phpfog.com:whowasout.com (push)
$ git branch -vv
master c33b5dc [origin/master] Merge branch 'whowasout.com'
* whowasout.com 7b6b240 [whowasout.com/master: ahead 1] print statement in test.
php
Когда я фиксирую некоторые изменения в ветке whowasout.com и выполняю "git push", master отправляется в origin/master.Является ли это ожидаемым поведением?Я ожидал, что whowasout.com подтолкнет к whowasout.com/master.
Чтобы внести свои изменения, я в настоящее время набираю "git push whowasout.com whowasout.com:master", но я думал, что отслеживание ускорит этот процесс.На правильном ли я пути?
Решение
Вам придется сделать:
git push whowasout.com whowasout.com:master
Это потому что whowasout.com
у него нет филиала whowasout.com
и ты этого не хочешь.Что вы действительно хотите, так это переместить whowasout.com branch на локальном сервере в master на whowasout.com remote, что должно быть сделано, как описано выше.
Чтобы получить желаемое поведение, чтобы просто git push
перемещается из whowasout.com ветви на локальном сервере в мастер на удаленном, вы должны установить push.default
конфигурация для upstream
( ранее называвшийся tracking
)
git config push.default upstream
Обратите внимание, что вы должны сделать это, потому что по умолчанию отслеживающие ветви полезны для отслеживания восходящей ветви, когда вы выполняете выборку / вытягивание.Когда вы меняете push.default
настройка, это также вступает в игру в push.В противном случае push просто выталкивает соответствующие ссылки, т.е. whowasout.com ветвь будет перенесена в whowasout.com ветвь на удаленном whowasout.com.