我已经做了一些研究,但不幸的是我找不到适合我的情况的解决方案。
因此,在 LAMP 堆栈上工作,对于客户来说,存在必须同时在同一个项目的三个不同主干上工作的问题。因此,此时有三台主机(在同一台服务器上):
develop.myproject.ext
testing.myproject.ext
production.myproject.ext
可以想象,该项目有以下过程:1. 在develop
项目版本上开发新功能 2. 刚完成后,它们被“复制”到版本中testing
,由客户进行测试 3. 一旦一切正常且获得客户批准,就会在production
版本中报告更改
我使用带有 SFTP 插件的 Elementary OS 和 Sublime Text 3(每次编辑文件时,都会自动在目标主机上加载保存)。
目前,我使用的方法不是很方便,即我使用一个文件来跟踪每个主机的更新文件,这非常分散(我需要知道每个主机上我加载了哪个文件),并且如果它们同时在开发和测试,则可能会产生冲突(例如,我有一个develop
文件的 1.2 版本, 上有 1.1 版本testing
, 上有 1.0 版本production
)。
是否存在一种方法论、一个程序,或者简而言之某种东西可以促进这种管理?
我已经评估了使用 Git(特别是 Gitlab)的选项,但是这假设它每次都必须从终端(或在 Sublime Text 上使用插件)来加载文件并且仍然有三个独立的分支,然而,这似乎难以管理(我不需要拥有 git 提供给我的所有历史记录和功能)。
由于三台主机都运行不同的数据库,因此如果有一个管理工具可以自动将整个数据库从生产环境迁移到另外两台主机(不断更新的那台)会很方便。但是,这并不是特别紧急,因为我已经找到了一个使用一系列自动 bash 脚本的临时解决方案。
感谢所有决定帮助我的人。
答案1
git 解决方案应该可以很好地与每个构建的分支配合使用
- 发展
- 测试
- 生产
每次都可以将相关分支快进到新点,从而更容易保持 3 个版本同步。
例子
(1 | 桌面排版)
你添加了 2 个提交来开发
(1 | TP)->(2)->(3 | D)
一旦你满意了,你就可以快速进行测试以开发
(1 | P)->(2)->(3 | DT)
一旦你对此感到满意,你就可以快速将生产转入测试
(1)-> (2)-> (3 | 桌面排版)
这里的提交可以合并到功能分支中,或者按照你喜欢的任何工作流程进行
至于上传,您可以从服务器上拉取,或者如果您无法获取 shell,您可以使用脚本检出每个分支并自动将其推送到相关服务器。
如果这些都是 Web 服务器,那么您可以使用像 caddy 这样的服务器和类似插件这,它将自动与你的仓库同步,因此不需要脚本