3 回答

TA贡献1785条经验 获得超8个赞
您应该将它们每个都放在自己的 git 存储库中。
然后,您可以使用 git 子模块将依赖的项目添加到另一个项目。
示例:项目 A 将包含项目 B 作为子模块。

TA贡献1773条经验 获得超3个赞
事实上,您的问题可以概括为:我应该使用单一回购方法还是多回购方法?
这是一个广泛的主题,但为了简单起见:这取决于这些项目之间的耦合程度和生命周期。
如果这些项目旨在共同生存和发展,您希望使用单一存储库方法并添加多个项目。例如,如果只有这些项目之间具有依赖关系,并且当您更改依赖关系时,您将更改使用者,那么您显然没有价值将它们拆分到多个存储库中。
它将使全局源代码可读性变弱,并针对同一用例在多个存储库上提交/拉取/请求/合并,这使得它们的可读性和一致性变弱。
如果这些项目不是为了共同生存和发展而设计的,那么您希望使用多存储库方法并按存储库包含一个项目。例如,如果其中一些项目被除您引用的应用程序之外的其他应用程序使用,那么您就没有价值在消费者项目的存储库中耦合项目依赖项,因为还有其他消费者,那么为什么是那个消费者而不是另一个呢?
您还可以使用超级单一存储库方法,例如 Google 或 Facebook 使用的方法,将所有项目(或几乎)添加到同一个存储库中,无论项目之间的耦合程度如何。做这样的事情并不简单,需要精细地定制 CDCI 和 SCM 工具,以保持事情的实用性和简单性,无论存储库大小如何。

TA贡献1864条经验 获得超6个赞
抱歉,因为它不是具体的解决方案,但它确实有效,我尝试过的是,由于某种原因,我不得不将所有项目仅添加到一个存储库,所以我按照以下步骤操作:
使用主分支创建一个新的存储库(保持为空)
使用相应的项目名称从主(空)创建一个分支(使用您拥有的相应项目创建任意数量的分支)
然后使用以下命令签出该分支:
$git checkout -b <branch_name>
如果源已经存在,则先将其删除,然后使用以下命令添加新创建的远程源:
$ git remote rm origin (To remove remote origin)$ git remote add origin https://github.com/<USERNAME>/<REPO_NAME>.git
对于操作授权,您需要使用以下命令:
$ git remote set-url origin <Access_Token>@github.com/<USERNAME>/<REPO_NAME>.git
现在,您可以通过以下命令直接将代码和文件推送到分支:
$ git push -u -f origin <branch_name>
如果上述命令引发错误,请首先尝试通过以下命令添加文件,然后再次尝试步骤 6。
$ git add .
这对我有用,因为每当我想更改/拉取任何项目中的某些内容时,我只需克隆一个特定分支,在其中进行更改,然后将更改仅推送到该特定分支。这样您就可以在一个存储库下拥有多个项目。我自己尝试了这个解决方案,只是为了绕过孤儿分支或拥有多个存储库的棘手方式。
添加回答
举报