Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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 - Fatal编程技术网

没有自己文件夹的git子模块

没有自己文件夹的git子模块,git,Git,我想让我的项目的某些部分,比如我的jQuery插件成为外部的。为此,我正在研究子模块。 它们看起来非常完美,因为它们可以在一个集中点进行管理和更新。我唯一的问题是,它们克隆到一个文件夹中。 这给我留下了一个这样的结构 /js /plugin_one plugin_one.js /plugin_two plugin_two.js /js plugin_one.js plugin_two.js 我想要的更像这样 /js /plugin_one

我想让我的项目的某些部分,比如我的jQuery插件成为外部的。为此,我正在研究子模块。 它们看起来非常完美,因为它们可以在一个集中点进行管理和更新。我唯一的问题是,它们克隆到一个文件夹中。 这给我留下了一个这样的结构

/js
   /plugin_one
      plugin_one.js
   /plugin_two
      plugin_two.js
/js
   plugin_one.js
   plugin_two.js
我想要的更像这样

/js
   /plugin_one
      plugin_one.js
   /plugin_two
      plugin_two.js
/js
   plugin_one.js
   plugin_two.js
这是可以通过子模块实现的,还是我使用了错误的工具


干杯。

子模块非常适合将多个回购链接到一个固定的配置集合中(即SHA1集合,代表每个子模块的固定集合,由它们的父回购记录)

但是,它们总是被克隆到自己的目录中。
他们也有很多其他的gocha(见“”)

一种方法是维护两组不同的工作树:

一个没有版本,所有文件都在一起。 正常克隆repo的一个(即子模块在其自己的目录中)

您可以在其中执行所有正常操作,但需要:

  • --git-tree
    选项用于每个git命令,
    --git-tree
    指向第一个集合(其中包含所有文件的集合)
  • 一个足够完整的
    .gitignore
    可以忽略任何不属于其特定repo的文件
这不是很令人满意,并指出子模块(甚至在提供它们的其他VCS中——Hg和subrepos、ClearCase和UCM组件……)应该保持独立

因此,共享JQuery插件可能首先需要重新考虑文件组织,看看这些文件是否确实可以被视为“子模块”