16

我听说现在使用 FTP 上传您的网站适用于 n00bs,但这是我在 8 年左右建立网站时所知道的唯一方法。显然现在所有的嗡嗡声都在使用版本控制系统,如 SVN 或 Git,并以某种方式使用 SSH 仅上传已更改的文件(如果我理解正确的话)。我想知道是否有人可以解释或指出我的“综合”指南。我需要安装什么,我的共享主机 (Dreamhost) 是否兼容?我目前在 WAMP 环境中开发。我从未使用过版本控制,也不知道从哪里开始。我通常使用 CakePHP 或 Zend 等框架进行开发。

4

10 回答 10

12

你把事情搞混了。内部使用版本控制系统在开发过程中跟踪您的代码。使用像 SVN 这样的集中式系统,您会定期将代码上传到 SVN 服务器,该服务器会跟踪已更改的内容,确保正确合并冲突的更改,并保留历史记录,以便您可以回滚更改。

分散式或分布式版本控制系统消除了一个中央服务器,而是允许每个代码副本跟踪其自己的更改历史,然后让您随意合并和组合这些单独的分支。

但是一旦你有了一个完整的产品,你可以以任何你喜欢的方式将它推送到生产服务器。FTP 无疑是这样做的一种选择。

于 2008-12-03T18:38:22.930 回答
6

对于文件上传,您正在寻找的是rsync。有一个称为DeltaCopy的 Windows 包装器, DreamHost wiki 有说明

于 2008-12-03T18:02:41.363 回答
2

首先,您需要决定要用于版本控制的内容。我听说过关于 Git 的好消息,但我自己仍然是 SVN 用户。

Dreamhost 实际上让您可以使用他们的 webpanel 创建 SVN 存储库,那里非常热衷,我不记得了,但我认为他们有一些额外的非常好的功能可以提供帮助。

我建议充其量阅读或浏览一下:http : //www.svnbook.org 如果您打算在 Git 上实际使用 SVN,它会非常全面。

于 2008-12-03T17:59:13.650 回答
2

每个人都完全没有抓住重点。使用版本控制系统进行开发是一件很棒的事情,即使对于自己工作的开发人员来说也有很​​大的好处。这里的问题是关于使用版本控制系统进行部署。

这是一个更新的好主意,考虑一下像Magento这样的东西,它在基本安装中有 6,744 个文件,更不用说何时开始添加自己的皮肤,通常运行到大约 500 个文件。使用版本控制来部署类似这样的东西可以节省大量时间通过 FTP 上传这么多小文件,因为只发送修改过的文件。

除此之外,我从未真正尝试过这样的部署,因此我无法提供任何真实世界的体验,但是有几篇关于如何获得此设置的好文章,可以在这里看到一篇好文章。

于 2008-12-08T13:42:29.780 回答
1

这是一个 wiki,它应该为您提供有关将 Subversion 添加到 Dreamhost 所需的所有信息。

http://wiki.dreamhost.com/index.php/Subversion

我现在在我的网站上使用了 Subversion,它确实让它变得更容易了。我在我的 Windows 机器上使用 Aptana 并通过该程序上传所有内容。它允许我比较旧版本,恢复它们,分支新版本等......

这是一个巨大的节省时间!

于 2008-12-03T17:58:12.403 回答
1

我也使用 Zend Framework 进行开发,这里是我使用 FTP 和版本控制的方法。

在我的本地机器上,我安装了 Subversion 和 TortoiseSVN。

  1. 如果我开始一个新项目,我会以我喜欢的方式设置一个 SVN 存储库(我使用 trunk/branches/tags 系统)。

  2. 我将主干中的初始工作副本签出到本地 webroot 中的项目文件夹。

  3. 在 Aptana 中创建了一个新项目,并将项目路径设置为我在本地主机上的项目文件夹。

  4. Aptana 了解该项目是版本化的,并在每个文件上显示适当的图标。我可以直接在 Aptana 的文件树中执行许多版本控制功能,不需要任何 shell 甚至 Tortoise。

  5. 一旦我有一个稳定的、可部署的应用程序版本,我就会创建一个版本控制标签。然后我做了一个导出(取消版本化)。

  6. 然后通过 FTP 上传导出的应用程序。

无论如何,我现在就是这样做的,也许它可以澄清一些事情。欢迎提供有关改进程序的提示!

于 2008-12-08T13:55:48.240 回答
1

Eric Sink 关于源代码控制的文章是了解基本概念的好地方。

http://www.ericsink.com/scm/source_control.html

于 2008-12-03T18:37:54.820 回答
1

正如其他人所说,您可以在本地设置版本控制......或在您的主机上。我建议你做最适合你的事情。

您提到使用 Dreamhost。我支持那里的一个小站点,并且知道它们确实允许通过scpsftp上传。这将允许您使用加密的密码上传文件。(如果你不想,你不必采用版本控制方法!;-) 向下滚动我链接到的 sftp 页面,你会发现一些对 scp 和 sftp 客户端的建议。

FWIW,如果您使用的是 Windows,我已经使用WinSCP多年并且喜欢它。另外,如果您想要完全登录访问,我建议PuTTY;它的完整下载还包括用于 sftp 和 scp 的基于命令行的客户端。

于 2009-07-15T13:55:19.213 回答
0

使用ftp上传没有问题。唯一的缺点是密码以纯文本形式传输。

最好有一个本地版本控制系统,它可以让您轻松查看版本之间的更改,并快速恢复到旧版本,等等......

我认为不需要在共享主机上安装版本控制系统。只有当您想从不同的站点(在家、工作中、旅行时)访问版本控制系统时,它才能派上用场。

于 2008-12-03T18:02:09.087 回答
0

有一个很棒的 bzr 插件,称为bzr-upload,专为您的用例而设计。bzr 非常轻量级(无需设置任何存储库)并且超级容易开始使用,即使您以前没有使用过任何类型的源代码控制。它是 bzr 的插件,每次您在本地机器上提交时,它都会将更改的文件 s/ftp 到您的网络主机。它不会推送所有版本控制信息,只会推送文件本身。

于 2009-07-15T13:30:37.737 回答