我是版本控制的新手,如果可能的话,我希望得到一些帮助。
我想知道,控制 3 个开发环境的最佳方式是:开发 > 测试 > 生产
- 开发(本地主机环境)- 所有开发的工作都在上传之前在这里完成
- 从事特定项目的每个人都应该有此文件夹的克隆(每个协作者及其用户,如果可能)并且用户的每个推送都将发送到此处,开发文件夹。
- Testing - 应该是一个克隆文件夹,其中包含 Development 推送的数据,并使用 ftp 自动与子域
testing
同步,或者任何协议(protocol)。 - Production 是发布稳定更新的实时站点。
- 应该是Testing的克隆,还是推送时测试应该把数据上传到这里?
当用户推送的文件与其他用户 1 分钟前推送的文件不同时,冲突问题如何?当然可以有任务分离,每个人都做某些事情,但如果不是,如果 X 提交 submit.php 而 Y 也在 1 分钟前提交 submit.php 怎么办?
哪种版本控制软件最适合?
最佳答案
如果您将其翻译成 DVCS ( Distributed Version Control System ),则 like Git ,您的每个“文件夹”都可以是您的代码存储库的实际克隆。
这意味着你:
- 将从您的本地开发推送到“
development
”仓库 - 将从“
开发
”推送到“测试
”(或者更好的是,有一个负责拉的“测试”任务'development
' 并在检测到任何新提交时触发一些测试 - 将从“
testing
”(如果测试正常)推送到生产
此外,您不会接受非 fast-forward update到远程仓库,这意味着任何冲突都将在推送之前首先在本地解决。
关于testing - 本地、测试和生产版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215964/