合并两个远程Git仓库

30
我想合并 Git 中的两个远程代码库。
其中一个是主要代码库,我没有写权限,但想要跟踪它的主分支。
另一个代码库由我们维护,我有完全的权限。
我想要跟踪主要代码,并且在我的远程代码库中记录我们的修改。
如何实现这个操作?
1个回答

56

我建议:

  • 克隆yourRemoteRepo(这样,您可以轻松地从该存储库拉取/推送)
  • mainstreamRepo添加为远程并获取其分支,然后跟踪您感兴趣的分支

    git clone git://yourRemoteRepo
    git remote add mainStreamRepo http://mainStreamRepo
    git fetch mainStreamRepo
    git checkout -b mainStreamMaster mainStreamRepo/master
    git checkout master
    
    从那里,你可以:
    • mainStreamMaster合并到你的master分支,
    • 或者将你的master分支变基在mainStreamMaster之上(以便将mainStreamMaster的全部历史记录集成到你的master分支中),
    • 然后对master(或特定主题的分支)进行一些修改,你可以将其推送到yourRemoteRepo中。

@TravisCunningham(http://stackoverflow.com/users/2487332/travis-cunningham),感谢您的编辑([错误地被拒绝](http://stackoverflow.com/review/suggested-edits/2317758)):我已经添加了我最初忘记的远程名称。 - VonC
这是否可能在不克隆的情况下仅使用获取并在远程引用上合并?还是合并总是需要一个已检出的工作目录? - hakre
https://saintgimp.org/2013/01/22/merging-two-git-repositories-into-one-repository-without-losing-file-history/ - Marian K.
使用从远程拉取的分支,您可以将更改推送到任一源,即git push mainStreamRepo HEAD:mastergit push origin - Daniel
@Daniel 确实如此。不过,在这个问题的背景下,这是不可能的(因为其中一个代码库是只读的)。 - VonC
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接