【问题标题】:How to manage a project on GitHub that has an external git dependency not stored on GitHub如何在 GitHub 上管理具有未存储在 GitHub 上的外部 git 依赖项的项目
【发布时间】:2012-07-29 20:54:43
【问题描述】:

我正在处理一个我想存储在 GitHub 上的项目。

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

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

我的第一个想法是将 mupdf 添加为子模块,然后将我的项目推送到 GitHub——但是我对 mupdf 所做的更改(例如在子模块内)会发生什么?我在哪里存储这些?我的理解是,如果我在子模块内进行更改,那里的提交只会存储在本地。我阅读了此页面 http://git-scm.com/book/en/Git-Tools-Submodules ,但不确定这是否可行。

设置我的仓库的最佳方式是什么,例如:

1) 我的整个项目都在 GitHub 上 2) 我可以从 mupdf 获得新的更改到我的项目中 3) 我可以保留对 mupdf 的更改并将它们与新更改合并

【问题讨论】:

    标签: git github git-submodules mupdf


    【解决方案1】:

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

    git submodule init
    

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

    【讨论】:

    • 您如何将新的上游更改拉入子模块/合并现有更改?
    • 它在顶层完成。树包含子模块当前提交的 sha1。这可以通过 git submodule update --recursive 递归地继续。
    • 这就是我最终做的:1) git submodule add git:// .. 2) git submodule init 3) cd submodule 4) git checkout -b MyBranch 5) git remote add Github git ://... 6) git push Github MyBranch .
    【解决方案2】:

    您要么必须将更改推送到其他 git 存储库(无论它可能存储在哪里),要么在 GitHub 上创建该存储库的分支并在那里进行更改。

    【讨论】:

      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2013-03-22
      • 2021-11-18
      相关资源
      最近更新 更多