如何从FTP中脱离自己以支持版本控制

时间:2008-12-03 17:50:22

标签: php svn git ftp ssh

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

10 个答案:

答案 0 :(得分:12)

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

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

但是一旦你拥有了完整的产品,就可以按照自己喜欢的方式将其推送到生产服务器。 FTP肯定是这样做的一种选择。

答案 1 :(得分:6)

对于文件上传,您要查找的是rsync。这个名为DeltaCopy的Windows包装器和DreamHost wiki有instructions

答案 2 :(得分:2)

首先,您需要确定要用于版本控制的内容。我听说Git很棒,但我自己仍然是SVN用户。

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

我建议最好阅读或略读:http://www.svnbook.org如果你打算在Git上实际使用SVN,它会非常全面。

答案 3 :(得分:2)

每个人都完全忽略了这一点。使用版本控制系统进行开发是一件好事,即使对于自己开发的开发人员也有很大的好处。这里的问题是关于使用版本控制系统进行部署。

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

请注意,我从未真正尝试过这样的部署,所以我无法提供任何真实世界的体验,但有几篇关于如何进行此设置的好文章,可以看到一个好文章{{3} }。

答案 4 :(得分:1)

这是一个wiki,可以为您提供将Subversion添加到Dreamhost所需的所有信息。

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

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

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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

我还使用Zend Framework开发,这是我如何使用FTP和版本控制。

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

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

  2. 从主干检查初始工作副本到我本地webroot中的项目文件夹。

  3. 在Aptana 中创建一个新项目,并将项目路径设置为localhost上的项目文件夹。

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

  5. 一旦我有一个稳定的,可部署的应用版本,我创建版本控制标记。然后我导出它(取消它)。

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

  7. 这就是我现在如何做到这一点,也许它澄清了一些事情。欢迎提出改进程序的提示!

答案 7 :(得分:1)

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

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

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

答案 8 :(得分:0)

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

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

我认为不需要在共享主机上安装版本控制系统。只有当你想从不同的站点(在家里,工作中,旅行时)访问版本控制系统时,它才会很方便。

答案 9 :(得分:0)

bzr有一个名为bzr-upload的精彩插件,专为您的用例而设计。 bzr非常轻(不需要设置任何存储库)并且非常容易开始使用,即使您之前没有使用任何类型的源代码控制。它是bzr的插件,每次在本地计算机上进行提交时,它都会将更改的文件s / ftp发送到您的Web主机。它不会推高所有版本控制信息,只会推送文件本身。