6

在 Git 中,如何组织工作以跟踪库的本地配置文件,这是一个 git 子模块?

详细说明:

该库具有跟踪的普通文件,以及位于其文件夹中但未跟踪的默认配置文件,以避免重置或覆盖它们(它们在 .gitignore 中列出)。所有文件都在 lib 的文件夹或子文件夹中。

我也开始在 Git 中跟踪一个使用这个库的项目。现在有一个难题:

  • 如果我将此项目中的 lib 设为子模块,我将无法跟踪配置文件(Git 将忽略它们,因为它们位于子模块文件夹中)。

  • 据我了解,将所有内容作为一个大项目来跟踪是一个坏主意。

  • 如果我确实跟踪库中的配置文件,如何避免将它们重置为默认值?我是否在工作项目中创建一个分支并每次都从 master 中提取?那么,如果我在其中编辑库和配置文件怎么办?这一定会导致合并冲突,不是吗?

我想这并不新鲜,但我找不到任何建议。我会很感激从你们的经验中学习。

4

2 回答 2

4

使用子模块时,应避免因容器(此处为使用 lib 的项目)而进行任何修改,因为它会在子模块的历史上创建新的修订。

例如,对于 lib,可以引用可以作为基础的配置模板文件:

  • 默认值配置文件生成(lib有一个默认值文件归档,可用于生成完整但未跟踪的配置文件)
  • 或自定义配置文件生成(项目有自己的配置文件值,并使用它在 lib 内的同一位置生成非跟踪配置文件)

“其中包含标记化值的配置文件模板,以及将该 config.template 文件转换为私有(且被忽略的)配置文件的脚本”是我在有关合并管理的 SO question中建议的方法。

关于配置文件的其他更一般的建议可以在这个SO question中找到。

于 2009-09-15T19:52:02.737 回答
3

在主项目目录中跟踪您的配置文件并将符号链接放入库子目录中?

git add lib.conf
ln -s ../lib.conf lib/

还是我错过了什么?

于 2009-09-15T20:00:49.410 回答