Git:从现有存储库创建 Git 子模块并将父级更改反映到子存储库

2024-04-05

请注意,我是 Git 新手。

我有两个存储库:

  1. Libgdx 回购协议 https://github.com/mrafayaleem/libgdx
  2. gdx-sqlite REPO https://github.com/mrafayaleem/gdx-sqlite

主要存储库是 Libgdx REPO,我的所有工作都进入这个存储库,主要在gdx-sqlite 项目 https://github.com/mrafayaleem/libgdx/tree/master/extensions/gdx-sqlite。由于我希望 gdx-sqlite 项目显示为单独的存储库,所以我所做的是:

  1. 在 GitHub 上创建了一个新的存储库 (gdx-sqlite REPO)
  2. 在我的机器上创建了一个本地存储库(嵌套在本地 libgdx 存储库内)
  3. 将本地嵌套存储库的所有代码推送到远程 gdx-sqlite REPO

这导致一切都出了问题,我认为嵌套存储库是罪魁祸首。后来我删除了本地嵌套存储库并恢复到以前的提交。我发现解决此类问题的方法是 Git 子模块,但我完全迷失了我想要实现的目标,如下所示。

现在我应该如何根据以下内容实现这一目标:

  1. 我想创建一个新的存储库,位于“gdx-sqlite 回购协议”这应该始终反映我对位于以下位置的项目所做的更改"https://github.com/mrafayaleem/libgdx/tree/master/extensions/gdx-sqlite https://github.com/mrafayaleem/libgdx/tree/master/extensions/gdx-sqlite"
  2. 任何发送 Pull 请求至“gdx-sqlite 回购协议”应该能够提取所有依赖项(即完整的 libgdx REPO),以便他可以立即处理该扩展。

如何才能做到这一点?


你说得对。对于这种情况,最好的方法是使用Git 子模块 http://git-scm.com/book/en/Git-Tools-Submodules。这是在 Git 中处理依赖关系的最佳方式。

As gdx-sqlite https://github.com/mrafayaleem/gdx-sqlite是您主项目的扩展Libgdx https://github.com/mrafayaleem/libgdx,您可以通过这种方式将其添加为子模块:

git clone [email protected] /cdn-cgi/l/email-protection:mrafayaleem/libgdx.git libgdx
cd libgdx
# remove the old directory
rm -rf extensions/gdx-sqlite
git add extensions/gdx-sqlite
# add the submodule (note the read-only URL)
git submodule add git://github.com:mrafayaleem/gdx-sqlite.git extensions/gdx-sqlite
# commit the changes
git commit -m 'Add submodule for the gdx-sqlite extension'

然后克隆您的项目(及其所有子模块):

git clone --recursive git://github.com/mrafayaleem/libgdx.git

或者对于您(具有写权限):

git clone --recursive [email protected] /cdn-cgi/l/email-protection:mrafayaleem/libgdx.git
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git:从现有存储库创建 Git 子模块并将父级更改反映到子存储库 的相关文章

随机推荐