Version control 我是否应该将我的网站媒体保留在我的网站';s存储库?

Version control 我是否应该将我的网站媒体保留在我的网站';s存储库?,version-control,Version Control,我有一个使用Django用Python编写的简单博客应用程序。我使用Git来控制这个网站的版本。该网站的主要内容是博客。博客条目存储在SQLite数据库中(不受版本控制,但定期备份);有些条目包含图像和其他媒体(如PDF) 目前,我将这个“博客媒体”与其他媒体(如外部JavaScript代码和用于布局目的的图像——当然,所有这些都组织得很好)一起存储在存储库中。然而,我突然想到,这并不是一个好策略,原因如下: 每当我发布包含图像或PDF链接的新博客条目时,我都必须将图像添加到repo中,然后将新

我有一个使用Django用Python编写的简单博客应用程序。我使用Git来控制这个网站的版本。该网站的主要内容是博客。博客条目存储在SQLite数据库中(不受版本控制,但定期备份);有些条目包含图像和其他媒体(如PDF)

目前,我将这个“博客媒体”与其他媒体(如外部JavaScript代码和用于布局目的的图像——当然,所有这些都组织得很好)一起存储在存储库中。然而,我突然想到,这并不是一个好策略,原因如下:

  • 每当我发布包含图像或PDF链接的新博客条目时,我都必须将图像添加到repo中,然后将新版本复制到生产服务器上——仅仅添加图像似乎需要大量的工作。只需将映像上载到服务器(当然,还要进行本地备份)就更容易了
  • 由于这种媒体是内容而不是代码,因此似乎没有必要将其与代码(以及相关样式的媒体)一起存储
  • 回购协议包含大量二进制文件,这增加了回购协议的总体大小;更重要的是
  • 我从来没有真正编辑过这些图片,为什么要对它们进行版本控制呢
  • 因此,我正在考虑从repo中删除这些文件,并将它们复制到服务器上包含网站Python代码、模板、样式表等的目录之外的目录中

    然而,我想知道:与作为网站布局和功能的一部分实际使用的图像等相比,在网站的回购中处理内容图像和其他媒体是否有“最佳实践”


    编辑
    更详细地说,我看到了在回购协议中保留网站代码和在回购协议中保留网站内容之间的区别——我觉得内容可能应该与实际提供网站功能的代码分开存储(特别是因为内容可能会更频繁地更改,而且我不认为有必要为网站本身运行所不需要的“东西”创建新的提交)。

    移动版本控制系统无法很好地处理二进制文件,也就是说,如果它们不更改,则没有(几乎没有)区别


    您只需决定哪一个更简单,在存储库中备份它,并通过多步骤过程添加图像/pdf/任何内容,或者为它们维护一组单独的操作(包括备份)就我个人而言,我会把它们放在版本控制上。如果你不改变它们,它就不会伤害任何东西。为什么担心那些不会造成伤害的东西?

    < P>最初,我会说不要把它们放在回购中,因为它们永远不会改变,而是考虑把你的网站移动到不同的服务器或托管提供商的情况。这是一种简单的部署方法,除非它不受版本控制,否则大量的复制/粘贴操作可能会出错。至少,如果/当发生某些事情时,这一切都在同一个位置


    <>这是一个真正值得回答的问题。

    让他们在版本控制中。如果他们不改变,你不会为此付出代价。如果他们确实改变了,那么你最终需要版本控制。

    版本。为什么不?我版PSD的和一切。但是如果这使你畏缩,我可以U。理解。你应该对javascript和样式表进行版本化,这些都是代码

    现在,如果说内容,你指的是“我为博客文章上传的图像”或“我在评论中使用的pdf文件”,那么我会说不——不要对其进行版本化。这种内容会在数据库或其他地方进行说明。但是徽标图像、精灵以及构成网站外观的内容绝对应该进行版本化


    如果你不相信我,我会给你一个更敏感的理由。有一天你会希望你能进入你的历史,看看你的网站在5年前是什么样子。如果你对你的外观和感觉进行了版本化,你就可以做到这一点。

    我想你需要问问自己为什么要使用版本控制,为什么要备份Proba因为你想保护自己不受文件丢失或损坏,如果发生了可怕的事情,你可以依靠备份

    如果你使用版本控制和单独的备份系统,你会遇到分发问题,因为你的站点的最新版本位于不同的位置。如果出现问题,那么你要花多少精力来恢复这些东西呢?对我来说,拥有一个带有版本控制和备份的分布式系统似乎太多了当然,手动操作并不容易编写脚本。更重要的是,当出现问题时,您可能已经感到压力过大。使恢复过程变得更困难可能不会对您有多大帮助

    在我看来,将静态文件放在版本控制中并没有任何坏处。您必须将它们放在版本控制存储库或普通文件系统中的某个位置。由于静态文件从不更改,它们不会随时间推移占用更多空间,所以有什么问题吗?我建议您将所有静态文件放在版本控制下我个人会定期备份我的数据库,并将此备份提交给版本控制。这样,您可以将所有内容放在一个地方,在发生灾难时,您可以轻松地执行新的签出/导出来恢复您的站点


    我已经建立了一个网站。它有超过一亿的PDF文件,所有内容都存储在版本控制下。如果服务器死机,我所要做的就是干净地导出并重新导入数据库和网站,然后重新启动并运行。

    如果您正在处理一个web项目,我建议为您的媒体创建一个虚拟目录。例如,我们设置了在我们的loc中创建一个虚拟目录