在Git中,我如何组织工作来跟踪库的本地配置文件,这是一个git子模块?
详细信息:
该库具有被跟踪的普通文件,以及位于其文件夹中但未被跟踪的默认配置文件,以避免重置或覆盖它们(它们列在.gitignore中)。所有文件都在lib的文件夹或子文件夹中。
我开始在Git中跟踪其中一个使用此库的项目。现在有一个两难的境地:
如果我将这个项目中的lib作为子模块,我将无法跟踪配置文件(Git将忽略它们,因为它们位于子模块文件夹中)。
跟踪一切都是一个大项目是一个坏主意。
如果我执行跟踪库中的配置文件,我该如何避免将它们重置为默认值?我是否在工作项目中分支并且每次都从主人那里拉出来?那么,如果我编辑库和配置文件呢?这必然会导致合并冲突,不是吗?
我想这不是新的,但我找不到任何建议。我很感激从你的经验中学习。
答案 0 :(得分:4)
使用子模块时,应避免因容器(此处:使用lib的项目)进行任何修改,因为它将在子模块的历史记录上创建一个新修订。
例如,对于lib,可以引用可以作为基础的config 模板文件:
“配置文件模板中包含标记化值,以及将config.template文件转换为私有(并忽略)配置文件的脚本”是我在此SO question about merge management中建议的方法。
有关配置文件的其他更一般的建议,请参阅此SO question。
答案 1 :(得分:2)
跟踪主项目目录中的配置文件,并将符号链接放入库子目录?
git add lib.conf
ln -s ../lib.conf lib/
还是我错过了什么?