如何管理GitHub上没有存储外部git依赖项的项目

如何管理GitHub上没有存储外部git依赖项的项目,git,github,git-submodules,mupdf,Git,Github,Git Submodules,Mupdf,我正在做一个我想存储在GitHub上的项目 这个项目使用mupdf,它托管在自己的git服务器上,例如。git://git.ghostscript.com/mupdf.git 我希望能够从mupdf中获得最新的更改,但也保留对mupdf所做的更改,同时将整个项目保留在GitHub上 我的第一个想法是将mupdf添加为子模块,然后将我的项目推送到GitHub——但是我对mupdf所做的更改(例如在子模块内部)会发生什么变化?我应该把它们存放在哪里?我的理解是,如果我在子模块内部进行更改,提交将只存

我正在做一个我想存储在GitHub上的项目

这个项目使用mupdf,它托管在自己的git服务器上,例如。git://git.ghostscript.com/mupdf.git

我希望能够从mupdf中获得最新的更改,但也保留对mupdf所做的更改,同时将整个项目保留在GitHub上

我的第一个想法是将mupdf添加为子模块,然后将我的项目推送到GitHub——但是我对mupdf所做的更改(例如在子模块内部)会发生什么变化?我应该把它们存放在哪里?我的理解是,如果我在子模块内部进行更改,提交将只存储在本地。我读了这一页,但不确定这是否有效

建立我的回购协议的最佳方式是什么,例如:

我的整个项目都在GitHub上 2我可以将mupdf中的新更改添加到我的项目中
3我可以保留对mupdf的更改,并将其与新更改合并

您必须将更改推送到其他git存储库,无论它存储在何处,或者在GitHub上创建该存储库的分支并在那里进行更改。

您也可以将子模块的repo推送到GitHub。如果您希望将其作为回购所在的默认位置,请在工作文件夹根目录下的.gitmodules文件中进行调整。然后发行

git submodule init

将新url传播到子模块中的.git/config。

以及如何将新的上游更改拉入子模块/合并现有更改?这是在顶层完成的。树包含子模块当前提交内容的sha1。这可以通过git子模块更新递归地继续。这就是我最后做的:1 git子模块添加git://。。2 git子模块init 3 cd子模块4 git签出-b MyBranch 5 git远程添加Githubgit://... 6 git推送Github MyBranch。