2013-04-02 9 views
25

私はこれを正しく質問する方法がわかりませんが、私は努力して努力します - 私は決してGit愛好家ではありません、私は知っていますhow基本コマンド高度な用語/機能はありません。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 publicおよびgit merge privateにできるようにする。 Gitの1.8.0のよう

git branch -u origin/foo foo 

注:

+0

準備ができたら、そのブランチを別の原点(Github)にプッシュするだけでワークフローに合っていますか? – noisewaterphd

答えて

30

あなたはこれらのコマンドを使用して、個々の支店のために別のサーバーにプッシュする別のブランチを設定することができ、最後のfooの場合現在のブランチが選択されます。 Gitの1.7.0のよう

git branch --set-upstream foo origin/foo 

あなたのケースでは、あなたは2つのリモコン(MYDOMAINとgithubの)を追加し、個別にそれらにプッシュする各ブランチを設定することで、これを使用します。後

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

は、あなたがまだの場合は、リモコンを追加していることを確認してください:

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

そして、適切な場所にプッシュする枝を設定し、それは次のようになります。これはすべてセットアップされているので、git pushgit pullを使用するだけで、プッシュ&プルできます。これは公共支店にいるときはギブスに、プライベートブランチにいるときはmydomain.comにプッシュ&プルします。

+1

恐ろしい答え、ありがとう! –

+0

@CraigWatson喜んで助けて! –

+0

この同じシナリオでは、gitに選択的にファイルを公開ブランチに追加するように指示できますか?たとえば、dist、src、README.mdというフォルダが非公開で、distとREADME.mdだけをgithub、すなわちパブリックリポジトリに表示したい場合は、どうすればこの問題を解決できますか? –

関連する問題