как неявно `git push` из локальной ветки" X "в" origin / Y " - PullRequest
3 голосов
/ 28 сентября 2011

Скажем, у вас есть ветка в вашем источнике, которая имеет смехотворно длинное имя ...

$> git branch -a
* master
  origin/master
  origin/branch-with-a-ridiculously-long-name

И когда вы работаете над этой веткой локально, вы хотите дать ей менее смешное имя, например bob.

$> git checkout origin/branch-with-a-ridiculously-long-name
$> git checkout -b bob
$> git branch --set-upstream bob origin/branch-with-a-ridiculously-long-name

Когда придет время нажать, что вы можете сделать, чтобы, если вы запустите:

$> git checkout bob
$> git push

, тогда любые локальные изменения в "bob" будут отправлены на"ветвь с смехотворно длинным именем", и я не буду создавать новую ветвь в источнике с именем "bob"?

Я действительно нашел способ сделать git push неявным расширениемв git push origin bob:branch-with-a-ridiculously-long-name.

Я думаю, что настройка git config push.default upstream проходит часть пути, но я не уверен, как бороться с тем фактом, что имя локальной ветви отличается от удаленного.

Ответы [ 3 ]

3 голосов
/ 28 сентября 2011

Если вы установите push.default на upstream (или tracking в версиях git до 1.7.4.2), это будет делать именно то, что вы хотите при запуске:

   git push

... или:

   git push origin

Команда git branch --set-upstream, которую вы выполнили, в сочетании с настройкой конфигурации, должна заставить это работать.

Я написал пост о этой неудачной асимметрии между git push и git pull .

1 голос
/ 28 сентября 2011
0 голосов
/ 14 июня 2016

Более поздние версии git (большинство версий 2.x) включают опцию для установки всей этой конфигурации одной командой:

git checkout -b bob origin/branch-with-a-ridiculously-long-name

Это установит восходящий поток bob в правильную удаленную ветвь.

В качестве альтернативы, если у вас уже есть локальная ветвь, вы можете использовать флаг --set-upstream-to:

git checkout bob
git branch --set-upstream-to origin/branch-with-a-ridiculously-long-name

Оба эти параметра правильно установят git config

...