2012-12-17 138 views
1

我有一個回購GitHub上稱爲foo具有如下分支:克隆一個分支命名不同分支的git

  • GH-頁面

我有第二個回購在GitHub上調用<username>.github.com(用戶回購),並提供以下分支:

  • master

我想在<username>.github.com->source使用代碼foo->master並能夠從foo->master發生變化時,他們合併。

實現此目的的最佳方法是什麼?

+0

什麼是實際使用'''source'''的是在userpage回購?它應該是一個分叉,還是一個完整的重複?將foo添加爲遠程是不夠的? – JonnyJD

回答

4

您可以再補充foo/master作爲遠程合併它不時地(在<username>.github.com回購做到這一點):

# add foo as remote (once) 
git remote add foo https://github.com/<username>/foo.git 
# fetch from remote (often) 
git fetch foo 
# merge changes to source (when you want) 
git checkout source 
git merge foo/master 

可以設置origin/source作爲遠程用於sourceorigin/master作爲遠程主站的正常。

您還可以使用git fetch --all更新所有遙控器,包括originfoo

如果您在source中變化不大,那麼合併幾乎總是快進。


您可能需要爲只讀的foo設置遠程URL。 這種方式你不能從<username>.github.com意外推送,如果它是公共回購,你不會需要身份驗證(或ssh密碼密碼)的提取。


您可以從獲取的gh-pages分支保持混帳與

git config remote.foo.fetch "+/refs/heads/master:/refs/remotes/foo/master" 
git branch -rD foo/gh-pages 

你一定要記住設置,當你想到不到master任何其他分支從foo遠程呈現。

操作的Refspec的一個很好的解釋是在git book

+0

從技術上講,你也可以做'''git config --add remote.foo.fetch「+ refs/heads/master:refs/heads/source」'''。這樣'git fetch foo''就足以更新'''source''。這**將導致問題,當這不會是一個快速前進!僅限完整重複。 – JonnyJD

0

也許下面將幫助(我不是100%肯定這雖然中):

# Add a remote foo 
git remote add foo <foor-url> 

# create a foo-master branch 
git checkout -b foo-master 

# Set upstream branch for foo-master 
git branch --set-upstream foo-master foo/master 

# fetch code from foo master 
git fetch foo master 

# reset the current branch to foo master 
git reset --hard foo/master 

# merge in source 
git checkout source 
git merge foo-master 

要更新富主:

git checkout foo-master 
git pull