我有一个git项目,我用于最近发表的科学论文。在项目中,我有子目录doc
(分为doc/paper
doc/talks
)results
src
等。
现在我想发布我的源代码(但不是我的演示幻灯片等)。让人们只访问src
子目录的最佳方法是什么?我会发布一个zip文件来拍摄当前src目录的快照,但我希望人们能够轻松获得更新。
非常感谢。 奥利弗
答案 0 :(得分:6)
简短版:
您需要为每个要提供访问权限的顶级文件夹使用单独的repo。 有关如何执行此操作的详细信息,请参阅submodules。
“稀疏”检查可以正常工作,但我相信这不能强加给你的用户,他们必须将整个存储库克隆到本地,然后才能获得部分工作目录。
(你也可以设置一个单独的仓库,它会自动更新并推送更改,但是你失去了从你的用户群中合并分叉和修复的机会,我想这是重点。)
更长的版本: 禾 “新”分布式版本控制系统(Git,Mercurial,Bazaar等)不是以与SVN和CVS相同的方式围绕每个文件夹检出构建的。将分支树与目录树分开可以简化处理分支并在修订图中进行合并,因为这些比集中式VC更多。 (SVN,IMO,处理分支和合并就像一个大锤处理打开一堆垃圾邮件,其中很大一部分原因是层次结构中的任何目录都可以分支/合并)。
部分结帐功能很容易在不进行分支/合并的集中式场景中提供,因此在时间的流逝中很受欢迎。你不再那样了,并且可能会因为没有它而学会感恩。 :)
因此,有一些重要的东西/子模块更容易。虽然分支顶级仓库稍微复杂一些,但您需要考虑如何设置以便于您使用。 (也许发布演示幻灯片并不是那么糟糕?:)
答案 1 :(得分:4)
无法使用git
仅查看存储库的子文件夹。
您可以将子文件夹设置为自己的存储库,或者按照您的建议分发tarballs / zipfiles。
从git 1.7开始,支持“稀疏结账” - 请参阅here - 但这只是稀疏的工作副本;您仍然必须让用户能够克隆整个存储库。
答案 2 :(得分:2)