复杂github结构

复杂github结构,git,github,git-submodules,Git,Github,Git Submodules,因此,我有我的主存储库,作为后端,我想添加子模块,这些子模块是我没有写访问权限的存储库。然而,我希望能够继续从主流中走出来 我想将一个插件添加到作为子模块驻留的其中一个后端,为此,插件代码必须放在我的子模块的backends/foo/src/目录中。同时,我想保留我的backends/foo/src/plugin作为我的主repo的一部分 使用github有办法做到这一点吗?没有。一旦您将backends/foo作为子模块,您基本上将该目录的控制权移交给另一个存储库 您可以使用一些构建系统的魔法

因此,我有我的主存储库,作为后端,我想添加子模块,这些子模块是我没有写访问权限的存储库。然而,我希望能够继续从主流中走出来

我想将一个插件添加到作为子模块驻留的其中一个后端,为此,插件代码必须放在我的子模块的backends/foo/src/目录中。同时,我想保留我的backends/foo/src/plugin作为我的主repo的一部分

使用github有办法做到这一点吗?

没有。一旦您将backends/foo作为子模块,您基本上将该目录的控制权移交给另一个存储库

您可以使用一些构建系统的魔法来复制文件,或者分叉远程repo,添加插件,然后将其用作子模块


然而,最好的办法可能是仔细查看子模块,找出一种从源代码树构建插件的方法。如果你必须破解他们的构建系统才能做到这一点,他们很可能会接受一个补丁。

不确定你在问什么……那么backends/foo/将是一个子模块,src/foo plugin.c(引用../backends/foo/foo.h)将在你的repo中?你认为问题出在哪里?我编辑了一点我的帖子,也许现在它更清楚了。我明白这并不容易,也许我想做的事情根本没有意义,还有更好的办法。基本上,我想在子模块内部添加额外的代码,但是,不应将额外的代码视为子模块的一部分。如果可能的话,我想把它作为我主要回购协议的一部分。这就像MainRepoSubmodulePartOfMainRepo。是的,现在更清楚了,谢谢:你的最后一点是我的第一个想法。我问了开发人员,但他们告诉我,这不是那么容易,我不知道为什么。他们使用waf来构建项目,而我没有时间去学习如何让waf做这个把戏,我希望我有时间去学习。。。我可能会赞成叉子的主意。我是否能够将我的fork与主存储库合并,因为我不应该时不时地添加冲突?是的,这很容易;只需添加第二个remote,我通常称之为upstream,所以git remote添加upstreamhttps://github.com/foo/bar.git,然后您只需向上游执行git pull即可获取任何更改。您甚至可以跳过第二个遥控器,只需执行git pullhttps://github.com/foo/bar.git.