0

我和一个朋友在一个 PHP 网站上工作,我们希望转换为使用适当的版本控制,但由于该网站包含许多不断变化的文件,例如用户上传的图像,我们不确定如何设置它。

我尝试在 Google 上寻找解决我的情况的方法,但我什至不确定要搜索什么:P

我的问题是,如果存在包含用户上传的图像和其他不断变化的内容的文件夹,我们如何在运行 Apache 和 GIT 的本地计算机上开发站点。因为内容总是在变化,而且随着时间的推移可能会变得非常大,我认为我们可能只能使用 git exclude 功能,但随后网站上指向该内容的链接会被破坏。因为该站点完全基于用户上传的带有这些损坏链接的内容,所以它对于测试几乎毫无用处。

你们对我们如何实现良好的 GIT 工作流程有什么建议,而不必每次用户向网站提交内容时都推送新版本?

非常感谢任何帮助,谢谢!:)

4

3 回答 3

1

这是一种非常常见的情况 - 您可能需要考虑几件事。

首先,正如 Klas Melbourn 所写,您可能不想将实时系统中的内容或数据添加到您的源代码控制中——这就是备份的用途。

第二件要考虑的事情是将“环境”的概念引入你的思维——在大多数情况下,你至少有 3 个环境:开发——你的机器,你朋友的机器。开发环境应该是可预测的——所以你可能希望在那里有一堆有代表性的用户贡献,这样你就可以测试你的代码——但它不应该(通常)拥有实时站点内容/数据的完整副本,因为那在不增加太多价值的情况下减慢您的开发过程。在开发环境中,您希望拥有大量调试信息,包括“丰富的”错误消息。

下一个环境通常是测试——您和您的朋友将您的工作放在一起,并在专用环境中进行测试。同样,您希望内容和数据具有代表性,但可能不包括实时的所有数据。但是,您确实希望有边缘情况的示例 - 大量图像、微小图像、奇怪纵横比的图像等 - 这样您就可以快速测试一切是否按预期工作。

最终环境是“生产”或“实时”——显然您不希望测试数据四处飘荡,并且您希望禁用“丰富”错误消息、调试信息、测试帐户等。

管理这一切可能有点痛苦,最近的想法是“持续交付”;查看此答案以了解使用 PHP 执行此操作的方法。

于 2013-05-19T10:10:53.443 回答
1

你应该问问自己你想要版本控制的原因是什么。

版本控制用于跟踪源代码,以便您可以协作使用该源代码并了解历史上所做的更改(例如用于错误分析)。

所以你应该对网站的源代码进行版本控制。

您正在谈论的图像和链接都是网站内容的一部分。内容需要定期备份,以便您可以从糟糕的情况(例如硬件故障)中恢复。

在我看来,您可能有混合的源代码和内容,至少在概念上是这样。您应该澄清这种区别并相应地对待每个部分。

于 2013-05-19T09:34:55.240 回答
0

您可以在“.gitignore”中添加路径(您的私有配置或日志或生成的内容)(放入您的 repo 或您的主目录)。

于 2013-05-19T09:53:23.500 回答