我希望像源代码这样的所有项目文件都是存储库的一部分.为简单起见,所有工作都在开发分支上完成.此外,我想包括其他项目材料,如pdf文件.我不想将它们添加到开发分支.到现在为止,我提出了以下策略.
>策略1是创建单独的分支材料并添加pdfs.该分支与其父分支共享一些历史记录.
>策略2适应第一个策略,但也会不时将材料分支的提交合并到开发分支中. (我不想要这个,它是皮塔饼.)
>策略3是创建一个不共享源代码历史的orphan branch.
>策略4是遵循策略1或3,另外创建一个仅代表“主”存储库的材料分支的子模块.如果可能,工作目录将同时显示开发分支和材料分支.
所有策略的缺点是,当我签出另一个分支时,我无法访问工作目录中的文件.
如何在开发分支上工作,同时在工作目录中提供材料?如果您想象的更容易,那么材料也可以是文档.
编辑:我在阅读Seth Robertson的答案后添加了策略4.
最佳答案 好吧,你可以将pdf拆分成一个单独的存储库,并使用像
gitslave或git-submodules这样的东西将两个项目链接在一起.
这个想法的一个扩展是,当使用git-submodules(而不是gitslave)时,你可能能够将“其他存储库”实际上放在另一个分支上的本地存储库中(我不知道git如何分辨它从其他一些情况来看 – 如果您实际使用相同的repo而不是从上游主服务器克隆,则可能存在锁定的例外情况.
当然,使用git-submodules,你可能(或可能不会)在合并pdf repo的SHA时遇到问题. gitslave不会有这个问题.