6

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

/js
   /plugin_one
      plugin_one.js
   /plugin_two
      plugin_two.js

我想要的更像是这样。

/js
   plugin_one.js
   plugin_two.js

这可以通过子模块实现还是我使用了错误的工具?

干杯。

4

1 回答 1

1

子模块非常适合将多个 repo 链接到一组固定的配置中(即 SHA1 的集合,表示每个子模块的固定集,由其父 repo 记录)

但是,它们总是被克隆到自己的目录中。
他们也有很多其他的 gocha(参见“为什么你的公司不应该使用 Git 子模块”)。

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

一个没有版本控制,所有文件放在一起。一个具有正常克隆的存储库(即在它们自己的目录中具有子模块)。

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

  • --git-tree每个 git 命令的选项,--git-tree指向第一组(包含所有文件的那个)
  • 一个足够完整的.gitignore文件,可以忽略不属于他们特定仓库的任何文件。

这不是很令人满意,并指出子模块(即使在其他提供它们的 VCS 中——Hg 和 subrepos、ClearCase 和 UCM 组件......)应该保持分开。

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

于 2012-08-25T15:35:40.140 回答