我正在努力改善某些项目中的源代码冗余,我遇到了一个问题。
让我们说我有一些实用程序,我使用acros更多的项目。示例:构建足够通用的脚本和测试脚本,以便在所有项目中使用,但也可以为每个项目定制一些配置文件。
我想在一个地方维护构建脚本逻辑(修复错误并添加改进),并在所有使用它的项目中轻松完成更改,但也不会破坏配置文件。
我知道我不能用git子模块执行此操作,因为配置文件需要提交到实用程序存储库而不是项目存储库。
我一直在查看git-subtree,但我不确定它是在做我想要的。
之前有没有人进入过这个?
答案 0 :(得分:1)
我知道我无法使用git子模块执行此操作,因为配置文件需要提交到实用程序存储库而不是项目存储库。
如果您的每个项目都是自己的git存储库,那么您实际上可以使用子模块 然后,每个项目(父存储库)将引用实用程序存储库的特定分支的特定提交,每个分支具有为每个项目定制的那些实用程序。
但是,对于紧密链接的文件集(一方是实用程序,另一方面是项目),最好将所有内容保存在一个存储库中并使用content filter driver:
你会:
smudge
”脚本的结帐时生成每个项目中的最终实用程序(前提是您的脚本能够detect the content of the template utilities)。