Как заставить локальную ветку отслеживать удаленную ветку с другим именем? - PullRequest
0 голосов
/ 30 августа 2010

У меня есть установка с двумя серверами (подготовка и производство). У обоих из них есть основная ветка, на которую я могу нажать (я использую heroku, хотя это не имеет значения).

В настоящее время я могу перейти к подготовке с помощью этой команды:

git push staging master

Что подтолкнет мою локальную ветку master. Однако я хотел бы иметь локальную ветвь с именем staging, которая будет отправлять в удаленный репозиторий staging/master. Как это можно сделать?

Ответы [ 2 ]

2 голосов
/ 30 августа 2010

Чтобы всегда нажимать на отслеживание:

Во-первых, убедитесь, что параметр конфигурации push.default установлен на tracking:

git config push.default tracking

Во-вторых, установите восходящий поток для вашей локальной ветки:

git branch --set-upstream <localbranch> <remotename>/<remotebranch>

Чтобы выдвинуть только одну конкретную ветвь в конкретную другую удаленную ветвь

В качестве альтернативы, если вы хотите сохранить поведение push по умолчанию (переместить все ветви всопоставление на удаленном компьютере), вы можете просто индивидуально сказать Git, что при передаче на этот конкретный удаленный локальный филиал фактически «совпадает» с другим удаленным филиалом:

git config remote.<remotename>.push refs/heads/<localbranch>:refs/heads/<remotebranch>

Для получения дополнительной информации о параметрах конфигурации Git,см. здесь:

http://git -scm.com / docs / git-config

1 голос
/ 30 августа 2010

Чтобы сделать это вручную,

git push staging staging:master

Я бы посоветовал настроить конфигурацию, которая позволила бы вам сделать это автоматически, хотя:

git config remote.staging.push refs/heads/staging:refs/heads/master

, который указывает git переместить локальную ветвь staging на master на удаленной стороне (то есть промежуточной стадии) (если я правильно помню синтаксис) и, необязательно,

git config branch.staging.remote staging

, который сообщит git, что если вы извлекли staging и просто набрали git push, он должен нажать на staging remote.

Конечно, я думаю, что вы можете сделать это, используя git branch и git remote, но я только что прошел процесс создания аналогичной установки (2 сервера) и обнаружил, что проще работать непосредственно с конфигурациями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...