繁体   English   中英

如何将多个 git 项目管理到一个具有不同文件夹的 github 存储库中

[英]how to manager multiple git projects into one github repo with different folder

我有这样的要求:

使用 2 个子文件夹 B_FOLDER 和 C_FOLDER 创建一个 GitHub 存储库 A_ROOT,

现在我分别使用git init两个本地项目 B 和 C,如何将本地项目 B 推送到 B_FOLDER 并将项目 C 推送到 C_FOLDER?

编辑为什么我需要这个:我在github上有一个repo,我想在我的repo下添加examples文件夹,并且每个示例都应该是独立且runnable ,当我调整示例时,我不想修改主项目.

子模块应该能够解决您的问题。

经常发生这样的情况,在处理一个项目时,您需要使用其中的另一个项目。 也许它是第三方开发的库,或者您单独开发并在多个父项目中使用的库。 在这些场景中会出现一个常见问题:您希望能够将两个项目分开处理,但仍然能够在另一个项目中使用一个。

...

Git 使用子模块解决了这个问题。 子模块允许您将 Git 存储库作为另一个 Git 存储库的子目录。 这使您可以将另一个存储库克隆到您的项目中并保持您的提交分开。

参考: https : //git-scm.com/book/en/v2/Git-Tools-Submodules

为什么我需要这个:我在github上有一个repo,我想在我的repo下添加examples之类的文件夹,每个examples应该是独立的和可运行的,并且在我调整examples时,我不想修改主项目。

虽然您可以使用submodules获得您想要的东西,但这是不必要的复杂性。 您描述的是正常的项目设置。

只需将examples/目录作为主项目存储库的一部分即可。 像处理任何其他目录一样提交并推送更改。 通过提交到examples/目录来“修改主项目”并没有错。 将示例与源代码保存在一起是有益的,这样它们在项目更改时保持同步。 很多时候,对项目代码的更改需要对示例进行更新。


在某些情况下,您可能需要不同的流程作为examples

如果您希望单独分发examples ,则应使用发布工具来完成。 我无法为你的项目推荐一个发布工具,但我可以推荐 Git 不是一个发布工具。

如果您的项目有一个昂贵的审查或测试套件,它会在每次提交或拉取请求时运行,请更改您的流程以使用仅涉及examples目录的更改的简化流程。 您可以使用git diff master --name-only检查分支中哪些文件发生了更改。 您可以使用git diff-tree --no-commit-id --name-only -r HEAD查看上一次提交中更改了哪些文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM