【问题标题】:Git mirror repository using two remotes使用两个遥控器的 Git 镜像存储库
【发布时间】:2013-10-27 18:10:12
【问题描述】:

假设有两个存储库,一个名为 project,另一个名为 project-community 在同一个 Github 帐户上。我现在想让项目社区存储库成为项目存储库的镜像。目的是项目的社区成员可以将补丁和其他代码提交到社区存储库,而项目的维护者不必处理稳定性问题等。我该怎么做?

我想我会简单地克隆存储库,添加一个新的远程,然后定期git pull projectgit push project-community。这在第一次尝试时效果很好,但我遇到的问题是我之后在社区存储库中只有 master 分支。在不创建每个分支的本地副本的情况下,将所有更改推送到所有分支的正确方法是什么?

我查看了--mirror 选项,但这似乎没有用,因为项目结构不再相同(现在有 git 添加的一级目录)。

【问题讨论】:

    标签: git repository mirror


    【解决方案1】:

    首先,您需要确保您的default pushing policy 设置为matching,以便将所有本地分支推送到各自匹配的upstream branches

    git push project-community # will push all matching branches
    

    其次,您需要一个仓库的克隆,其中 所有 远程分支在本地跟踪: 见“Track all remote git branches as local branches”。

    第三,您需要从所有远程分支更新所有本地分支:
    见“Can I easily update all local git branches from remote branches simultaneously?”。

    【讨论】:

    • 这里推送时,push.default = matching 与使用 --all 有何不同?
    • @Tectu --all 将推送 all 分支,包括上游 repo 上还没有匹配分支的分支。而且您可能不想推送一些仅为测试而创建的私有分支。
    • 非常感谢您的帮助。
    猜你喜欢
    • 2012-04-28
    • 1970-01-01
    • 2015-09-25
    • 2015-07-16
    • 2012-08-14
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多