使用子存储库管理git

时间:2013-11-22 05:15:47

标签: git github

我正在用一堆代码组成一个git repo,并注意到我希望在我的仓库中提供的大部分代码都可以从其他Git源获得。我已经对子模块和子树做了很多阅读,但不是我确定哪个最适合我的用例。

我的git repo将有许多文件夹,脚本等,我想拥有远程存储库中的最新代码。

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

我还希望用户能够在我的仓库中为脚本/文件提交补丁,而不会因子模块/子树等而引起很多心痛。

关于首选解决方案的建议?子模块,子树或其他什么?

以下是示例布局。

Folder1中

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

Folder2< = Git Repo =>

Folder3

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

1 个答案:

答案 0 :(得分:1)

  

我希望在我的回购中提供的大部分代码都可以从其他Git来源获得   我想拥有远程存储库中的最新代码。

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

  • fork a repository
  • 将fork作为子模块添加到项目中。

这样,您可以:

  • 在该子模块中创建专用分支
  • 制作新提交
  • 将它们推到你的叉子
  • 从那里提出拉取请求

子模块的唯一复杂性是要记住子模块中的任何修改意味着你必须返回到父repo,添加,提交并推送代表你修改过的子模块的special entry的新SHA1。

相关问题