Php 如何摆脱FTP,转而使用版本控制

Php 如何摆脱FTP,转而使用版本控制,php,svn,git,ftp,ssh,Php,Svn,Git,Ftp,Ssh,我听说用FTP上传你的网站现在适用于n00bs,但这是我8年左右建立网站的唯一方法。显然,现在所有的讨论都是使用一个版本控制系统,比如SVN或Git,并且以某种方式使用SSH只上传已经更改的文件(如果我理解正确的话)。我想知道是否有人能给我解释一下或给我指一本“综合”指南。我需要安装什么,我的共享主机(Dreamhost)是否兼容?我目前在WAMP环境中开发。我从未使用过版本控制,也不知道从哪里开始。我通常使用CakePHP或Zend之类的框架进行开发。这里有一个wiki,它可以为您提供有关向D

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

这里有一个wiki,它可以为您提供有关向Dreamhost添加Subversion的所有信息

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


这是一个巨大的节省时间

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

Dreamhost实际上允许您使用他们的webpanel创建SVN存储库,非常热衷于此,我记不起来了,但我认为他们有一些额外的非常好的功能可以帮助您


我建议阅读或浏览最多:如果您计划在Git上实际使用SVN,那么它是非常全面的。

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

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


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

对于文件上载,您需要的是。有一个叫做Windows的包装器,DreamHost wiki也有。Eric Sink关于源代码管理的文章是学习基本概念的好地方


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

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


但是一旦你有了一个完整的产品,你就可以随心所欲地把它推到生产服务器上。FTP当然是这样做的一种选择

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

这是一个更新和伟大的想法,考虑一些类似的东西,在基础安装中有6744个文件,当你开始添加你自己的皮肤时,并没有提到你的皮肤运行到大约500个文件。使用版本控制来部署类似的东西可以节省通过FTP上传这么多小文件的大部分时间,因为只发送修改过的文件


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

我也使用Zend Framework开发,下面是我如何使用FTP和版本控制的

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

  • 如果我开始一个新项目,我会按照我喜欢的方式设置一个SVN存储库(我使用主干/分支/标记系统)

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

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

  • Aptana了解此项目已进行版本控制,并在每个文件上显示适当的图标。我可以直接在Aptana中的文件树中执行许多版本控制功能,不需要任何shell甚至乌龟

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

  • 然后通过FTP上传导出的应用程序


  • 不管怎么说,我现在就是这样做的,也许它澄清了一些事情。欢迎提供有关改进程序的提示

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

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

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