我希望能够在现有分支之上分层其他分支,并独立修改这些分支。这很有用,例如,允许将各个子项目的二进制文件统一到同一个项目中bin
目录。一般来说,给定的文件仅存在于一层中。
理想情况下,我想我会使用 unionfs 来完成此任务,但它必须以某种方式提供一种访问各种 .git 目录的方法,这些目录看起来是同一根目录的所有子目录。无论如何,我认为 unionfs 实际上不起作用?因此,维护一组从存储库根到包含这些层的其他存储库的符号链接似乎是一个更好的主意。
我正在考虑做这样的事情:
- 将每个“层”保存在单独的存储库中
- 在主存储库中维护到应分层的每个文件的符号链接
- 将符号链接添加到 master .gitignore 中,以便在切换分支时它们不会被删除。
- 与 Windows 完全不兼容,以便可以在根存储库中的位置编辑文件。 IE 使用符号链接而不是仅仅将文件复制到主存储库中。
跟踪每个层的源提交 ID 是有意义的,这样,例如,在后续版本中从层中删除的文件可以从源存储库中删除其符号链接,并从主存储库的 .gitignore 文件中删除。
看起来这样的系统最终的工作方式有点像git submodule
,主要区别在于子模块将共同驻留在存储库的同一根级别。
我想知道是否已经有一个实用程序来管理这个?我研究过使用stg
(stacked git)来实现这种结构,但这似乎不是它的菜。
如果想法是有两个或多个分支处理单独的更改,但有一个分支将它们包含在一起进行测试,那么您可能需要研究一个 GIT 提交后/更新后挂钩,以自动将各个分支合并到混合分支。
如果不是为了测试,那么我想考虑重组事物的设置方式,可能会将事物分解为子模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)