如何使用Git单独组织其他项目材料?

时间:2011-06-08 22:40:01

标签: git git-branch git-workflow

我希望所有项目文件(如源代码)都是存储库的一部分。为简单起见,所有工作都在 development 分支上完成。此外,我想包括其他项目材料,如pdf文件。我不想将它们添加到开发分支。到现在为止,我提出了以下策略。

  • 策略1是创建单独的分支材料并添加pdfs。该分支与其父分支共享一些历史记录。
  • 策略2适应第一个策略,但也会不时将材料分支的提交合并到开发分支中。 (我不想要这个,而且它是皮塔饼。)
  • 策略3是创建一个不共享源代码历史记录的orphan branch
  • 策略4是遵循策略1或3,另外创建一个仅代表“主”存储库的材料分支的子模块。如果可能,工作目录将同时显示开发分支和材料分支。

所有策略的缺点是,当我签出另一个分支时,我无法访问工作目录中的文件 如何在开发分支上工作,同时在工作目录中提供材料?如果您更容易想象,材料也可以是文档


修改:在阅读Seth Robertson的答案后,我添加了策略4.

1 个答案:

答案 0 :(得分:2)

好吧,你可以将pdf拆分成一个单独的存储库,并使用类似gitslave或git-submodules的东西将两个项目链接在一起。

这个想法的一个扩展是,当使用git-submodules(而不是gitslave)时,你可能能够将“其他存储库”实际上放在另一个分支上的本地存储库中(我不知道git如何能够除了一些其他情况之外,可以说明这一点 - 如果您实际使用相同的仓库而不是从主上游克隆,则锁定可能例外。)

当然,对于git-submodules,您可能(或可能不会)在合并pdf repo的SHA时遇到问题。 gitslave不会有这个问题。