Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git如何在一个存储库中维护多个存储库_Git_Github - Fatal编程技术网

git如何在一个存储库中维护多个存储库

git如何在一个存储库中维护多个存储库,git,github,Git,Github,也许这可以通过使用解决,但我不知道在这种情况下如何解决 我想到了这个层次: web-app-repo/ .git README.md fontend-repo/ .git README.md backend-repo/ .git README.md web应用程序repo是一个远程应用程序。另外两个回购协议是本地回购协议。 如果可能的话,我怎么做 我需要能够在我的机器上进行更新,并将提交推送到它们各自的远程repo。是的,

也许这可以通过使用解决,但我不知道在这种情况下如何解决

我想到了这个层次:

web-app-repo/
   .git
   README.md
   fontend-repo/
      .git
      README.md
   backend-repo/
      .git
      README.md
web应用程序repo是一个远程应用程序。另外两个回购协议是本地回购协议。 如果可能的话,我怎么做


我需要能够在我的机器上进行更新,并将提交推送到它们各自的远程repo。

是的,方法是使用子模块,但如果要将子模块包括在已发布的项目中,则应该发布这些子模块

当您在项目中有一些子模块时,您所拥有的只是一个指向确认子模块状态的提交的“指针”

如果在某些子模块中进行了更改,并将这些更改提交到项目中,则此指针将更新以跟踪子模块的新状态

当您或您的团队中的一些人执行“子模块更新”时,git只是以提交状态加载您的子模块。 如果子模块未发布,则项目用户将无法在该提交中更新子模块,git将给您一个错误


如果您不希望子模块的代码公开,则可能需要在包中转换子模块。

是的,方法是使用子模块,但如果您希望将子模块包含在已发布的项目中,则应发布这些子模块

当您在项目中有一些子模块时,您所拥有的只是一个指向确认子模块状态的提交的“指针”

如果在某些子模块中进行了更改,并将这些更改提交到项目中,则此指针将更新以跟踪子模块的新状态

当您或您的团队中的一些人执行“子模块更新”时,git只是以提交状态加载您的子模块。 如果子模块未发布,则项目用户将无法在该提交中更新子模块,git将给您一个错误


如果您不希望子模块的代码公开,可能需要在包中转换子模块。

Ok。所以,如果我理解你所说的,在这种情况下,前端回购应该作为web app repo的子模块添加,并且应该有自己的远程回购。后端回购也是如此。因此,如果我将提交推送到一个子模块,我基本上是推送到子模块各自的远程repo。是的,就是这样。我要做的是首先创建fontend repo的副本,然后创建它的远程项目。然后将其作为“主”项目的子模块包含。然后,如果需要,您可以删除独立副本,因为您永远不会使用它。很好的一点是,如果你在一个单独的项目中使用该库,那么你可以在每个项目中使用不同的版本,并在需要时将其他项目更新为库的“最新版本”……谢谢,这很有意义!你所说的独立副本是什么意思?对不起,我的意思是,例如,“后端回购”的副本没有作为子模块包含在任何项目中。您只需要它来创建存储库,但它将始终包含在其他项目中……但是如果我想更新子模块,我需要相应的远程repo。如果子模块指向远程模块,为什么要删除远程模块?好的。所以,如果我理解你所说的,在这种情况下,前端回购应该作为web app repo的子模块添加,并且应该有自己的远程回购。后端回购也是如此。因此,如果我将提交推送到一个子模块,我基本上是推送到子模块各自的远程repo。是的,就是这样。我要做的是首先创建fontend repo的副本,然后创建它的远程项目。然后将其作为“主”项目的子模块包含。然后,如果需要,您可以删除独立副本,因为您永远不会使用它。很好的一点是,如果你在一个单独的项目中使用该库,那么你可以在每个项目中使用不同的版本,并在需要时将其他项目更新为库的“最新版本”……谢谢,这很有意义!你所说的独立副本是什么意思?对不起,我的意思是,例如,“后端回购”的副本没有作为子模块包含在任何项目中。您只需要它来创建存储库,但它将始终包含在其他项目中……但是如果我想更新子模块,我需要相应的远程repo。如果子模块指向远程模块,为什么要删除远程模块?