【问题标题】:Merging (submodule-ing?) into existing folder合并(子模块?)到现有文件夹
【发布时间】:2019-04-05 19:59:48
【问题描述】:

我觉得以前可能有人问过这个问题,但我无法将现有问题完全融入这个确切的问题。

我有一个 Git 存储库,用于存储 Sphinx 文件并为单个文档构建。我想将该文档中的一些文件(css、徽标等)重用于其他文档,并且最好将这些“核心文件”的更改与其余文档(例如,第一个)分开跟踪。

我认为这样做的一种方法是将“核心”文件拆分到一个单独的 Git 存储库中,但我正在努力寻找一种将这些核心文件添加到存储库的非手动方式。

我目前的文件结构类似于

| Doc repository
 |-- Sphinx
  |- Built docs folder
  |- Reusable components in folders
  | Some files
  | A reusable file

理想情况下,我希望能够分离(然后再次添加)可重复使用的项目。

我尝试了子模块,但我了解到它们不能用于将文件添加到现有文件夹中,因此我需要在同一文件夹中使用 reusable file

我一直在研究子树,但我无法理解它们是否完成了我想要的。

理想情况下,生成的结构类似于

| Doc repository
 |-- Sphinx
  |- Built docs folder
  | Some files
  | + Some command to add reusable stuff in this same directory

| Reusable repository
 |- Reusable folders
 | Reusable file

【问题讨论】:

    标签: git


    【解决方案1】:

    我知道如何reuse a submodule content coming from the same repo (but different branch),但这总是意味着将重复使用的文件放在单独的文件夹中。

    不过,你可以:

    • 声明该子模块以获取可重用文件
    • 在正确的文件夹中添加和版本符号链接,每个可重复使用的文件一个(意味着与您的其他现有跟踪文件)。
      每个符号链接都会引用子模块文件夹中的相应文件。

    这是一种无法很好扩展的解决方法(如果您在子模块存储库中添加或删除文件,则需要在符号链接中镜像),但这将实现您所追求的。

    不过,理想情况下,这些可重复使用的文件将通过一个相对 URL 寻址,其中包括一个子文件夹名称,这样就不需要使用符号链接了。

    【讨论】:

    • 符号链接的想法是我没想到的!据我所知,只有一个可重复使用的文件需要与现有内容位于同一文件夹中 - 这样才能进行管理。没错,文件夹中的内容应该可以通过适当的相对 URL 访问。
    • 我想在标记之前检查并确保它确实有效。尝试将可重用的东西提升一个级别对我来说是一个错误——这需要我的 conf.py 中的怪异之处。将它们更深入地捆绑到 Doc 存储库中要容易得多。
    猜你喜欢
    • 2017-06-07
    • 2019-11-24
    • 2014-10-16
    • 1970-01-01
    • 2018-06-30
    • 2018-08-10
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多