2017-05-09 175 views

回答

2
  • 在BitBucket中創建一個名爲B的新私人存儲庫。在本地克隆B
  • 轉到存儲庫B。使用GitHub存儲庫(repo A)的URL添加一個新的遠程(比如repoA)。

    $ git remote add repoA <A-repo-url> 
    $ git remote -v      # see the remotes 
    
  • 拉庫的提交/變爲庫B.

    $ git pull repoA master    # B's master = A's origin/master 
    
  • 按下更改庫B(到位桶)。

    $ git push origin HEAD    # B's origin/master = A's origin/master 
    

取庫A.

$ git fetch repoA 

各分支機構與A分支的歷史記錄創建一個新的分支(比如,next

$ git checkout -b next repoA/next # create a local 'next' branch = repoA/next 

推送當地next分支更改爲存儲庫B的next分支。

$ git push origin next 

在未來,保持同步與存儲庫A.

$ git fetch repoA 

現在拉A分支到B分支,或者只是結帳像上面的例子一個新的分支。然後推送到B的存儲庫。

注意repoA是您的存儲庫A的URL和origin是存儲庫B的URL在這裏。

+0

感謝您快速回答!來自github的原始庫(A)包含兩個分支'master'和'next','next'是我最需要的分支。現在我做了你提到的所有事情,但是我沒有在我的存儲庫中看到該分支。 – ememem

+0

以及我應該如何接收從存儲庫(A)到存儲庫(B)的新提交,以便它將保持同步?謝謝! – ememem

+0

'git fetch repoA --all'中的'--all'不會獲取所有分支。 '--all'將從所有配置的遠程回購站獲取。 '--all'和一個repo參數將會出錯。遠程通常默認配置爲獲取所有分支,所以只需'git fetch repoA'即可獲得所有分支。 –

0

有幾個方法可以做到這一點:

  1. 只是嚴格鏡像回購 - 沒有試圖發展工作的本地副本
  2. 不要在本地工作區的開發工作,而推/拉至2作爲工作流程的一部分不同的遙控器。

對於鏡像副本(例如所有的分支),其在這裏的github文檔覆蓋相當清楚:https://help.github.com/articles/duplicating-a-repository/。但是,請注意,這些方法嚴格用於鏡像回購,即他們創造了不適合做本地開發工作的本地回收。

簡而言之:

A.對於一次性鏡像副本:

$ git clone --bare https://github.com/exampleuser/A.git 
$ cd A.git 
$ git push --mirror https://github.com/exampleuser/B.git 
$ cd .. 
$ \rm -rf A.git 

B.對於正在進行的鏡像副本:

設置 - 首先創建目標到位桶回購,然後本地

$ git clone --mirror https://github.com/exampleuser/A.git 
$ cd A.git 
$ git remote set-url --push origin https://bitbucket.com/exampleuser/B.git 

然後根據需要,從A更改並將它們推送到B

$ cd A.git 
$ git fetch -p origin 
$ git push --mirror