当前位置:  开发笔记 > 开发工具 > 正文

Git/GitHub:外部代码的fork,子树合并或子模块?

如何解决《Git/GitHub:外部代码的fork,子树合并或子模块?》经验,为你挑选了1个好方法。

我想将现有项目(托管在GitHub上)作为我项目的一部分(放入子目录),同时保持历史和更新该项目的能力.我发现可以有三种方法:

    fork原始项目,将原始内容移动到子目录中并将其推送到我的GitHub仓库.

    初始化一个新的repo,用现有的repo 做一个子树合并并推送到我的GitHub repo.

    克隆现有仓库,创建一个新的主仓库,将克隆仓库作为子模块放入主仓库中,推送.

(1)变体可能是GitHub的优选变体,因为它们可能共享源.但从逻辑上讲,我的项目不是现有项目的分支.而现有的只是一个模块.此外,我不确定将现有代码移动到子目录中是否可能不会出现问题.我可能更喜欢(2)变体,因为只有一个回购.(3)需要与几个回购合作,但逻辑上是最接近我的情况.

我对此进行了相当多的研究,但我并不确定.在这种情况下你会推荐什么?先感谢您!



1> VonC..:

如果两个项目(GitHub和你的项目)的开发生命周期不同,那么子模块方法会更好.
即:如果您在没有系统地更改其他GitHub项目的情况下更改项目,那么您应该考虑子模块方法.

但是,要实现这一点,您需要(1)和(3)的组合:

如果你不能直接贡献(推送)到GitHub项目,你需要分叉它(1).

那么你需要将该分叉项目作为项目中的子模块引用(3).

它允许您引用GitHub项目的一个特定修订版,同时允许您更新该子模块并对其进行特定推送(如" 子模块的真实性质 "中所述).
但是,一旦更新了子模块,就不要忘记提交项目(子模块的"父项目"),以便注册您现在引用的子模块的新版本.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有