Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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_Subproject - Fatal编程技术网

使用git使用外部文件管理多个子项目

使用git使用外部文件管理多个子项目,git,subproject,Git,Subproject,我有一个个人项目,我想进行版本控制,但我不确定应该如何使用git来管理它。下面是文件夹结构的示例: project project/public/plugin1 project/public/plugin2 project/lib/plugin1 project/lib/plugin2 我本来打算为每个插件或模块创建单独的存储库,但这似乎有点棘手,因为插件的所有文件并非都集中在同一文件夹下。所以我需要将这些目录作为plugin1进行跟踪: project/public/plugin1 proj

我有一个个人项目,我想进行版本控制,但我不确定应该如何使用git来管理它。下面是文件夹结构的示例:

project
project/public/plugin1
project/public/plugin2
project/lib/plugin1
project/lib/plugin2
我本来打算为每个插件或模块创建单独的存储库,但这似乎有点棘手,因为插件的所有文件并非都集中在同一文件夹下。所以我需要将这些目录作为plugin1进行跟踪:

project/public/plugin1
project/lib/plugin1
同样,对于plugin2:

project/public/plugin2
project/lib/plugin2
公用文件夹中有css和js等文件,因此可以说更重要的文件是lib中的文件。我是否应该在该文件夹中设置存储库,并尝试添加外部公用文件夹?但吉特当然不会让我这么做。我已经试过从另一个问题:

git --work-tree=/ add /project/public/plugin1
我仍然收到一个错误,说它在存储库之外


由于这只是一个个人项目,我不需要访问或做任何远程的事情,这希望能消除一些复杂的问题。关于正确的设置方法有什么想法吗?谢谢。

看起来像是一个老问题,但是,对于任何看到这个问题的人来说,你想做的是使用git子模块

  • 为主项目和任何模块(库、插件、模块等)创建repo
  • 您的结构可能会有所不同,但您希望在主存储库中创建引用包含插件的其他存储库的子模块,等等

    # git submodule add git://path-to-your-repo.git modulename
    
  • 请注意,您将内容拉入主repo,并将其附加到主repo的修订版,该修订版允许您仅在子模块与主项目兼容时拉入子模块的特定版本。下面将子模块项目拉入主项目

    # git submodule update modulename
    

  • 这只是一个高层次的概述。请阅读更多详细信息。

    为什么要将它们分开?我想你可以用子树来做,但这可能会让事情变得复杂一些。你认为这真的有必要吗?@Renato Zannon我需要将它们分开,因为每个插件都是一个单独的版本。因此,plugin1可能是1.5版,plugin2可能是2.1版,等等。我认为这应该由您使用的语言/框架来处理,而不是git。你在开发什么技术?@Renato Zannon这是一个php/mysql项目。但我无法在文件夹中移动。如果所有插件文件都位于同一个文件夹中,那么使用git确实会容易得多。那么,没有办法单独跟踪这些插件了吗?就我个人而言,我会从最简单的事情开始,也就是说,做一次回购,然后在有特殊需要时将其拆分。