Git: как перенаправить локальную ветку в переименованную удаленную ветку?

У меня есть удаленный репозиторий и локальное репо. Я сделал git fetch --all и увидел нужную мне ветку в локальном репо, думаю, создаю локальную ветку отслеживания:

git checkout -t -b bug1000 origin/user/bug/1000

Моя проблема в том, что тяга верна, а нажатие не настроено:

>$ git remote show origin
* remote origin
  Fetch URL: XXX
  Push  URL: XXX
  HEAD branch: master
  Remote branches:
    maint                                      tracked
    master                                     tracked
    user/bug/1000                              tracked
    user/bug/1001                              tracked
    user/bug/1002                              tracked
  Local branches configured for 'git pull':
    bug1000     merges with remote user/bug/1000
    maint       merges with remote maint
    master      merges with remote master
  Local refs configured for 'git push':
    maint       pushes to maint       (local out of date)
    master      pushes to master      (local out of date)

Мой .git/config выглядит правильно:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = XXX
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "maint"]
        remote = origin
        merge = refs/heads/maint
[branch "bug1000"]
        remote = origin
        merge = refs/heads/user/bug/1000

Я уже пробовал git push -u origin bug1000:user/bug/1000, но это ничего не меняет.

Это использует git 1.7.10.2 (последняя стабильная версия на момент написания).


person utopiabound    schedule 21.05.2012    source источник


Ответы (1)


Вы можете добавить запись push для этого пульта, но если у вас их много, это может стать громоздким:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = XXX
    push = refs/heads/bug1000:refs/heads/user/bug/1000

Если вы добавили еще один виртуальный «каталог» и использовали bug/1000 локально вместо bug1000, тогда конфигурация push могла бы быть push = refs/heads/bug/*:refs/heads/user/bug/*, что может быть чище в долгосрочной перспективе.

person twalberg    schedule 21.05.2012
comment
Я посмотрел на добавление строки push, но на самом деле есть много ответвлений для отслеживания. Добавление строки push делает меня неспособным просто нажать, чтобы освоить... - person utopiabound; 22.05.2012
comment
Обратите внимание, что вы можете добавить несколько push-строк, чтобы у вас могла быть одна по умолчанию, которая соответствует обычным ветвям, и особые случаи для обработки ветвей ошибок. - person twalberg; 22.05.2012