在Git仓库中管理非代码资源的最佳方法是什么?

3

目前我在我的项目中使用SVN,文件夹结构如下:

 /trunk
    /design
    /flash
    /resources
    /scrap
    /www

我将所有网站源文件(psd等)保存在“design”文件夹中,总共几百MB或更多。我这样做是因为通常我是项目上唯一的开发人员,并且我经常在两个工作站之间切换,总是希望拥有最新的资源。我通常不使用分支(使用SVN)。
当我部署到Web服务器时,我会checkout“/trunk/www/”,其中只包含网站代码和任何编译的swfs(.fla和.as源文件保存在“/trunk/flash”中)。
我正在转向Git,但这种结构对我来说感觉不对,主要原因是:
1.我不想在部署过程中传输所有资源到Web服务器。
2.我通常不想分支二进制文件,并且不想因此而遇到潜在的冲突。
你有什么建议或者分享一下你的经验吗?
更新:
我决定采用子模块路线,其中“www”是子模块,其他所有内容都在父存储库中。在git支持部分检出之前,我认为这是保持清醒的最佳选择。

Git 支持部分检出似乎与 Git 的操作哲学相悖。你可以使用有限的历史记录进行检出,但我不确定是否支持对 head/master/orgin 分支的部分检出。 - Mica
2个回答

3
如何考虑使用单独的代码库来存储二进制文件或者www目录。

1
目前我倾向于这个方案。我曾考虑过使用子模块的方案,但想听听别人的建议。 - ifunk

1

我在git中使用.gitignore-file规则来处理二进制文件。

这意味着我忽略所有的二进制文件,所以它们不会被提交,只是用于测试或部署。这样可以节省带宽(好吧,这并不那么重要),并保持版本数量与代码变更一致。

更新:

有点信服:使用第二个代码库也是一种解决方案。您可以使用git-submodule将其集成到您的代码库中。stackoverflow上已经讨论了这个话题: Managing large binary files with git


不幸的是,这并不能解决我在工作站之间保持二进制同步的需求。 - ifunk
如果你想要使用分支,那么你可能需要使用一个只包含代码的分支和一个包含代码和二进制文件的分支。有很多教程可以参考(例如:http://www.neeraj.name/blog/articles/789-how-to-use-branch-feature-of-git-and-work-with-github)。 - user156676
谢谢你的帮助,这正是我一开始倾向于的,但不确定其他人对此有何看法。干杯! - ifunk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接