Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
270 views
in Technique[技术] by (71.8m points)

github - Git - Different Remote for each Branch

I'm unsure of how to ask this properly but I'll try and do my best - I'm by no means a Git aficionado, I know how to use the basic commands but not advanced terminology/functionality.

I have a private repository myrepo cloned from a private server git.mydomain.com. I'm familiar with the process of branching code on the same repository with git checkout -b mybranch - however I'd like to branch to GitHub rather than my private server, resulting in something like this:

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

Essentially I'd like to be able to git checkout public and git merge private.

question from:https://stackoverflow.com/questions/15775183/git-different-remote-for-each-branch

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can set a different branch to push to a different server for individual branches by using these commands:

As of Git 1.8.0:

git branch -u origin/foo foo

Note: If the last foo is left out, it will choose the current branch.

As of Git 1.7.0:

git branch --set-upstream foo origin/foo

In your case, you would use this by adding your two remotes (mydomain and github) and setting each branch to push to them individually. It might look something like this:

Make sure you add the remotes if you haven't already:

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

Then set the branches to push to the right places:

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

After this is all set up, you can push and pull just by using git push and git pull. This will push and pull to github when you're on the public branch, and to your mydomain.com when you're on your private branch.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...