我听说现在使用 FTP 上传您的网站适用于 n00bs,但这是我在 8 年左右建立网站时所知道的唯一方法。显然现在所有的嗡嗡声都在使用版本控制系统,如 SVN 或 Git,并以某种方式使用 SSH 仅上传已更改的文件(如果我理解正确的话)。我想知道是否有人可以解释或指出我的“综合”指南。我需要安装什么,我的共享主机 (Dreamhost) 是否兼容?我目前在 WAMP 环境中开发。我从未使用过版本控制,也不知道从哪里开始。我通常使用 CakePHP 或 Zend 等框架进行开发。
10 回答
你把事情搞混了。内部使用版本控制系统在开发过程中跟踪您的代码。使用像 SVN 这样的集中式系统,您会定期将代码上传到 SVN 服务器,该服务器会跟踪已更改的内容,确保正确合并冲突的更改,并保留历史记录,以便您可以回滚更改。
分散式或分布式版本控制系统消除了一个中央服务器,而是允许每个代码副本跟踪其自己的更改历史,然后让您随意合并和组合这些单独的分支。
但是一旦你有了一个完整的产品,你可以以任何你喜欢的方式将它推送到生产服务器。FTP 无疑是这样做的一种选择。
首先,您需要决定要用于版本控制的内容。我听说过关于 Git 的好消息,但我自己仍然是 SVN 用户。
Dreamhost 实际上让您可以使用他们的 webpanel 创建 SVN 存储库,那里非常热衷,我不记得了,但我认为他们有一些额外的非常好的功能可以提供帮助。
我建议充其量阅读或浏览一下:http : //www.svnbook.org 如果您打算在 Git 上实际使用 SVN,它会非常全面。
每个人都完全没有抓住重点。使用版本控制系统进行开发是一件很棒的事情,即使对于自己工作的开发人员来说也有很大的好处。这里的问题是关于使用版本控制系统进行部署。
这是一个更新的好主意,考虑一下像Magento这样的东西,它在基本安装中有 6,744 个文件,更不用说何时开始添加自己的皮肤,通常运行到大约 500 个文件。使用版本控制来部署类似这样的东西可以节省大量时间通过 FTP 上传这么多小文件,因为只发送修改过的文件。
除此之外,我从未真正尝试过这样的部署,因此我无法提供任何真实世界的体验,但是有几篇关于如何获得此设置的好文章,可以在这里看到一篇好文章。
这是一个 wiki,它应该为您提供有关将 Subversion 添加到 Dreamhost 所需的所有信息。
http://wiki.dreamhost.com/index.php/Subversion
我现在在我的网站上使用了 Subversion,它确实让它变得更容易了。我在我的 Windows 机器上使用 Aptana 并通过该程序上传所有内容。它允许我比较旧版本,恢复它们,分支新版本等......
这是一个巨大的节省时间!
我也使用 Zend Framework 进行开发,这里是我使用 FTP 和版本控制的方法。
在我的本地机器上,我安装了 Subversion 和 TortoiseSVN。
如果我开始一个新项目,我会以我喜欢的方式设置一个 SVN 存储库(我使用 trunk/branches/tags 系统)。
我将主干中的初始工作副本签出到本地 webroot 中的项目文件夹。
我在 Aptana 中创建了一个新项目,并将项目路径设置为我在本地主机上的项目文件夹。
Aptana 了解该项目是版本化的,并在每个文件上显示适当的图标。我可以直接在 Aptana 的文件树中执行许多版本控制功能,不需要任何 shell 甚至 Tortoise。
一旦我有一个稳定的、可部署的应用程序版本,我就会创建一个版本控制标签。然后我做了一个导出(取消版本化)。
然后通过 FTP 上传导出的应用程序。
无论如何,我现在就是这样做的,也许它可以澄清一些事情。欢迎提供有关改进程序的提示!
Eric Sink 关于源代码控制的文章是了解基本概念的好地方。
正如其他人所说,您可以在本地设置版本控制......或在您的主机上。我建议你做最适合你的事情。
您提到使用 Dreamhost。我支持那里的一个小站点,并且知道它们确实允许通过scp和sftp上传。这将允许您使用加密的密码上传文件。(如果你不想,你不必采用版本控制方法!;-) 向下滚动我链接到的 sftp 页面,你会发现一些对 scp 和 sftp 客户端的建议。
FWIW,如果您使用的是 Windows,我已经使用WinSCP多年并且喜欢它。另外,如果您想要完全登录访问,我建议PuTTY;它的完整下载还包括用于 sftp 和 scp 的基于命令行的客户端。
使用ftp上传没有问题。唯一的缺点是密码以纯文本形式传输。
最好有一个本地版本控制系统,它可以让您轻松查看版本之间的更改,并快速恢复到旧版本,等等......
我认为不需要在共享主机上安装版本控制系统。只有当您想从不同的站点(在家、工作中、旅行时)访问版本控制系统时,它才能派上用场。
有一个很棒的 bzr 插件,称为bzr-upload,专为您的用例而设计。bzr 非常轻量级(无需设置任何存储库)并且超级容易开始使用,即使您以前没有使用过任何类型的源代码控制。它是 bzr 的插件,每次您在本地机器上提交时,它都会将更改的文件 s/ftp 到您的网络主机。它不会推送所有版本控制信息,只会推送文件本身。