我是网络开发的新手,我无法找到这个简单问题的答案。 我的智慧在这里结束,我们将非常感谢任何帮助!
我需要定期更新我的实时网站上的文件,但我觉得我遵循的工作流程非常低效:
显然,我在这里错过了一个最好的做法 - 但是尽管在网上搜索了几天我仍然无法找到答案:
我错过了什么?
PS - 我在共享托管服务器上使用PHP,MySQL,Apache堆栈。
答案 0 :(得分:2)
我建议您继续使用Git / Tortoise SVN
最好的部分是基于feature
的分支。当每个分支都是新功能时,您可以随时在那里进行实验而不会干扰已经运行的功能。一旦新功能正常运行并合并到主分支,您就可以删除功能分支
除了分支和分叉外,GIT和Tortoise SVN还有很多功能。它显示了代码(+和绿色)之间的良好比较变化,用于添加,( - 和红色)用于删除。在RWD中处理CSS时,我发现非常方便
合并也变得更容易和无摩擦。解决冲突也是一个很好的知识
即使对于单独的开发人员来说,这也是值得的。单独的分支不仅适用于多个用户。您可以创建一个分支进行试验。在分支中,即使您领先于许多步骤,也可以始终切换回分支的位置。
供参考
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-preface-features.html
答案 1 :(得分:1)
听起来您需要自动化部署过程。这在网络世界中称为continuous-integration。我个人使用jenkins,但还有许多其他选项,例如travis-ci。就像在@pala_的评论中一样,我绝对建议使用版本控制软件,如果您最终使用连续集成服务器,这可能是必要的。
如果您认为自己想花时间自动化流程,则需要将源与用户生成的内容分开,并将其置于版本控制中。一般来说,我喜欢将用户生成的内容保存在与源文件完全不同的目录中,因此我可以在服务器更新文件时替换整个目录。
如果您使用GitHub或BitBucket等服务来托管您的代码,那么您可以选择使用可以在推送更新代码时触发持续集成服务器上的操作的webhook。
Github's documentation on webhooks
在持续集成服务器上,您可以使用rsync之类的内容来更新Web服务器中的文件。该命令看起来像这样:
rsync -avz -e ssh myproject/ user@example.com:/path/to/example.com