代码之家  ›  专栏  ›  技术社区  ›  brian d foy

如何同步两个不同git存储库(不是克隆库)中的文件并维护历史记录?

git
  •  10
  • brian d foy  · 技术社区  · 16 年前

    我维护两个不同的git repo,它们需要共享一些文件,我希望一个repo中的提交显示在另一个中。在每次回购中进行持续维护的好方法是什么?

    我一直是这个系统的维护者之一 perlfaq (Github) ,最近我开始负责维护Perl核心文档,它也在git中。

    目前,为了将FAQ同步到新(每月)版本的perl,我几乎不好意思说我只是复制了 perlfaq repo中的文件,并将它们覆盖在perl repo中。这会丢失历史记录,等等。此外,有时有人在perl repo中对这些文件进行更改,我最终会覆盖它(是的,请检查) git diff 你这个白痴。这些文件在repo中没有相同的路径,但我认为这是我可以改变的。

    • 创建补丁是可行的,但管理补丁也需要很多工作
    • Git子模块似乎只起到拉入整个外部回购的作用
    • 我还没有找到类似svn的文件外部的东西,但不管怎样,这将在两个方向上都起作用
    • 我只想从其中一个拿东西,然后在另一个拿

    管理这个的好方法是什么?

    2 回复  |  直到 10 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    git subtree ,可能会有帮助。
    它适用于推拉。
    issue with merges -Xsubtree “选择,但它仍然值得研究。

        2
  •  -2
  •   xenoterracide    15 年前

    git remote add perlfaq git://perlfaq... # real uri
    git checkout perlfaq/master -b perlfaq
    git checkout master # or whatever
    git merge perlfaq
    

    必须具有共同的历史记录才能执行合并。我知道我在regen2中以这种方式合并了3+回购。第一次可能会很痛苦。但在那之后就不应该了 痛苦的不幸的是,您只能单向合并,但如果需要,您可能可以从perl repo中挑选补丁到perlfaq中。