Не могу точно понять вопрос, отвечу как понял.
Речь тут вроде бы идет о соответствии локальных веток удаленным. Для ветки может отдельно настраиваться, куда она пушится и откуда пуллится. У нас есть команда git remote show origin, она выдает три списка:
- remote branches. Какие ветки есть на remote.
- configured for git pull. Какие локальные ветки делают pull и откуда. Локальных может быть много.
- configured for git push. Из какой локальной ветки делается push в remote/branch/. Вроде как только одна для каждой remote/branch.
По этим номерам я и буду к ним обращаться дальше.
Положим, у нас есть remote
origin и локальная ветка
branch_name, которую мы пока что не заливали на удаленный репозиторий. Сейчас она отсутствует во всех трех списках.
Заливаем локальную ветку на remote:
git push -u origin branch_name
- Появляется remote branch branch_name. (в список 1)
- Локальной ветке устанавливается pull из этой ветки.
- Локальной ветке устанавливается push в эту ветку, если еще никуда не установлен.
- Происходит собственно push.
Можно указать другое имя удаленной ветки:
что:кудаgit push -u origin local_branch_name:remote_branch_name
Создать новую локальную ветку, связанную с удаленной.
git branch --track local_branch_name origin/remote_branch_name
Чтобы настроить git pull для текущей ветки:
создали ветку и перешли в нее
git checkout -b new_local
подключили удаленную ветку на pull
git branch -u origin/remote_branch
для текущей ветки стерли информацию о pull
git branch --unset-upstream
Удалить ветку с remote (затрагивает списки 1 и 3):
git push origin :remote_to_delete
Пишите, помогло или нет.