Подтвердить что ты не робот

Git - Разный пульт для каждой ветки

Я не уверен, как правильно это спросить, но я постараюсь сделать все возможное - я ни в коем случае не поклонник Git, я знаю, как использовать основные команды, но не расширенную терминологию/функциональность.

У меня есть закрытый репозиторий myrepo, клонированный с закрытого сервера git.mydomain.com. Я знаком с процессом разветвления кода в том же репозитории с помощью git checkout -b mybranch - однако я хотел бы перейти в GitHub вместо моего личного сервера, что привело бы к чему-то вроде этого:

Repo       Branch      Remote Location    (Purpose)
------------------------------------------------------------
myrepo --> private --> git.mydomain.com  (Incremental work)
  |
  +------> public  --> github.com        (Public releases)

По существу, я хотел бы иметь возможность git checkout public и git merge private.

4b9b3361

Ответ 1

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

Как Git 1.8.0:

git branch -u origin/foo foo

Примечание. Если последний foo не указан, он выберет текущую ветку.

По состоянию на Git 1.7.0:

git branch --set-upstream foo origin/foo

В вашем случае вы использовали бы это, добавив два пульта дистанционного управления (mydomain и github) и установив каждую ветвь для их индивидуального нажатия. Это может выглядеть примерно так:

Убедитесь, что вы добавили пульты, если вы еще этого не сделали:

git remote add github git://github.com/foo/myrepo.git
git remote add mydomain git://git.mydomain.com/foo/myrepo.git

Затем установите ветки в нужное место:

git branch -u mydomain/private private
git branch -u github/public public

После того, как все будет настроено, вы можете нажать и вытащить только с помощью git push и git pull. Это будет тянуть и тянуть к github, когда вы находитесь в публичном филиале, и на свой mydomain.com, когда находитесь в своем частном филиале.