为了账号安全,请及时绑定邮箱和手机立即绑定

一个 GitHub 存储库中的多个项目

一个 GitHub 存储库中的多个项目

翻过高山走不出你 2023-09-27 15:17:54
我有 5 个 Java 项目一起工作。起初我独自一人从事这些项目。现在有人加入了我,我们实际上需要使用 GitHub 来高效工作。可以说项目 A 是主项目,它不依赖于任何其他项目。项目 B 依赖于项目 A。项目 C 依赖于 B 和 A。项目D等我面临一个设计问题:我应该使用一个 git 存储库并将它们全部放在一起但放在不同的文件夹中吗?我应该使用不同的 git 存储库并保持它们独立(可能更适合提交)?我应该使用不同的 git 存储库并将它们重新组合到一个主 git 存储库中吗?
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

您应该将它们每个都放在自己的 git 存储库中。

然后,您可以使用 git 子模块将依赖的项目添加到另一个项目。

示例:项目 A 将包含项目 B 作为子模块。


查看完整回答
反对 回复 2023-09-27
?
慕容3067478

TA贡献1773条经验 获得超3个赞

事实上,您的问题可以概括为:我应该使用单一回购方法还是多回购方法?
这是一个广泛的主题,但为了简单起见:这取决于这些项目之间的耦合程度和生命周期。

如果这些项目旨在共同生存和发展,您希望使用单一存储库方法并添加多个项目。例如,如果只有这些项目之间具有依赖关系,并且当您更改依赖关系时,您将更改使用者,那么您显然没有价值将它们拆分到多个存储库中。
它将使全局源代码可读性变弱,并针对同一用例在多个存储库上提交/拉取/请求/合并,这使得它们的可读性和一致性变弱。

如果这些项目不是为了共同生存和发展而设计的,那么您希望使用多存储库方法并按存储库包含一个项目。例如,如果其中一些项目被除您引用的应用程序之外的其他应用程序使用,那么您就没有价值在消费者项目的存储库中耦合项目依赖项,因为还有其他消费者,那么为什么是那个消费者而不是另一个呢?

您还可以使用超级单一存储库方法,例如 Google 或 Facebook 使用的方法,将所有项目(或几乎)添加到同一个存储库中,无论项目之间的耦合程度如何。做这样的事情并不简单,需要精细地定制 CDCI 和 SCM 工具,以保持事情的实用性和简单性,无论存储库大小如何。


查看完整回答
反对 回复 2023-09-27
?
隔江千里

TA贡献1906条经验 获得超10个赞

线程可以为您提供如何组织项目的正确答案,但请记住,这只是基于意见的答案,因为没有最佳方法。



查看完整回答
反对 回复 2023-09-27
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

抱歉,因为它不是具体的解决方案,但它确实有效,我尝试过的是,由于某种原因,我不得不将所有项目仅添加到一个存储库,所以我按照以下步骤操作:

  1. 使用主分支创建一个新的存储库(保持为空)

  2. 使用相应的项目名称从主(空)创建一个分支(使用您拥有的相应项目创建任意数量的分支)

  3. 然后使用以下命令签出该分支:

$git checkout -b <branch_name>
  1. 如果源已经存在,则先将其删除,然后使用以下命令添加新创建的远程源:

$ git remote rm origin  (To remove remote origin)$ git remote add origin https://github.com/<USERNAME>/<REPO_NAME>.git
  1. 对于操作授权,您需要使用以下命令:

$ git remote set-url origin <Access_Token>@github.com/<USERNAME>/<REPO_NAME>.git
  1. 现在,您可以通过以下命令直接将代码和文件推送到分支:

$ git push -u -f origin <branch_name>
  1. 如果上述命令引发错误,请首先尝试通过以下命令添加文件,然后再次尝试步骤 6。

$ git add .

这对我有用,因为每当我想更改/拉取任何项目中的某些内容时,我只需克隆一个特定分支,在其中进行更改,然后将更改仅推送到该特定分支。这样您就可以在一个存储库下拥有多个项目。我自己尝试了这个解决方案,只是为了绕过孤儿分支或拥有多个存储库的棘手方式。


查看完整回答
反对 回复 2023-09-27
  • 3 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信