[英]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 存储库的子目录。 这使您可以将另一个存储库克隆到您的项目中并保持您的提交分开。
为什么我需要这个:我在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.