web-dev-qa-db-ja.com

Git-ブランチごとに異なるリモート

これを適切に尋ねる方法がわかりませんが、最善を尽くします-私は決してGit愛好家ではありません、私は知っています方法基本的なコマンドを使用しますが、高度な用語は使用しません/機能。

プライベートサーバーgit.mydomain.comから複製されたプライベートリポジトリmyrepoがあります。 git checkout -b mybranchを使用して同じリポジトリでコードを分岐するプロセスに精通していますが、プライベートサーバーではなくGitHubに分岐したいので、次のようになります。

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

基本的に、git checkout publicgit merge privateができるようにしたいと思います。

35
Craig Watson

次のコマンドを使用して、別のブランチを設定して、個々のブランチの別のサーバーにプッシュすることができます。

Git 1.8.0以降:

git branch -u Origin/foo foo

注:最後のfooが省略されている場合は、現在のブランチが選択されます。

Git 1.7.0以降:

git branch --set-upstream foo Origin/foo

あなたの場合、これを使用するには、2つのリモート(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 Pushgit pullを使用するだけでプッシュとプルを実行できます。これにより、パブリックブランチにいるときはgithubに、プライベートブランチにいるときはmydomain.comにプッシュおよびプルされます。

38
Jonathan Wren