Какова цель отслеживания веток git? - PullRequest
0 голосов
/ 23 января 2012

Я создал ветку отслеживания, поэтому 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», мастер отправляется в origin / master. Это ожидаемое поведение? Я ожидал, что whowasout.com подтолкнет к whowasout.com/master.

Чтобы отправить изменения, я сейчас набираю «git push whowasout.com whowasout.com:master», но я подумал, что отслеживание ускорит этот процесс. Я на правильном пути?

1 Ответ

2 голосов
/ 23 января 2012

Вам нужно будет сделать:

git push whowasout.com whowasout.com:master

Это потому, что whowasout.com не имеет ветки whowasout.com, а вы ее не хотите. То, что вы действительно хотите, - это перевести ветку whowasout.com на локальный компьютер на master на пульте whowasout.com, что необходимо сделать, как описано выше.

Чтобы получить поведение, которое вам нужно, чтобы просто git push отправлял из ветки whowasout.com на локальный компьютер на мастер на удаленном, вы должны установить для push.default config значение upstream (ранее называвшееся tracking)

git config push.default upstream

Обратите внимание, что вы должны сделать это, потому что по умолчанию отслеживание ветвей полезно для отслеживания восходящей ветви, когда вы выполняете выборку / извлечение. Когда вы изменяете настройку push.default, она также вступает в игру в режиме push. В противном случае, push просто выдвигает соответствующие ссылки, т.е. ветка whowasout.com будет передана в ветку whowasout.com на удаленном сайте whowasout.com.

...