2013-11-22 81 views
3

我正在将git仓库与一堆代码放在一起,并且注意到我想要在我的仓库中提供的大部分代码都可以从其他Git源获得。我已经在子模块和子树上做了相当多的阅读,但是我不确定最适合我的用例。使用子仓库管理git

我的git仓库会有一些文件夹,脚本等,我想从远程仓库获得最新的代码。

理想情况下,如果我自己或社区中的某个人想要在远程git控制下的文件夹中为代码进行修改和提交补丁,他们可以在该文件夹下工作并提交补丁而不影响我的回购。

我也希望用户能够提交补丁到我的回购为脚本/文件而不造成大量的心痛由于子模块/子树,在首选的解决方案等

建议?子模块,子树或其他东西?

这是示例布局。

Folder1中

--------- SubFolder1.1

FOLDER2 < = GIT中回购=>

Folder3

--------- SubFolder3.1 < = Git Repo =>

回答

1

我希望在我的回购库中提供大量代码来自其他Git源
我想从远程存储库获取最新的代码。

子模块似乎是最合适的,特别是因为a submodule can follow the latest commits from a given branch
但因为你想提交补丁,这意味着你必须首先:

  • 叉的仓库
  • 添加叉作为子模块到项目中。

这样,您可以:

  • 创建一个子模块内的专用分支,
  • 作出新的提交
  • 推那些你的叉子
  • 使从那里
  • pull请求

子模块的唯一复杂性是记住任何修改w ithin子模块意味着您必须返回父代码库,添加,提交并推送代表修改的子模块的新代码special entry