我意识到这可能是一个表面上的广泛问题,但我正在寻找人们用来在WordPress网站上保留已编辑文件的版本历史的设置/工作流程的特定示例。例如,在开发站点时(甚至在其上线时),我经常对CSS和PHP文件进行更改,但是我没有很好的方法来恢复这些文件的旧版本。出于我的目的,在本地开发安装上进行更改,然后将这些更改复制到实时站点通常比我想要的麻烦得多。关于如何开始使用版本控制工具来跟踪对实时站点中文件的编辑的任何建议?
#1 楼
我不确定您对使用版本控制了解多少,但是最近我从SVN切换到Git,发现它很棒!尽管这取决于您的活动站点的服务器已安装Git(或让你)。我也在实时服务器上安装了Git,运行了一个名为
production
之类的分支。每当我完成本地实现/修复的问题时,我都会将其合并到production
分支中,然后通过SSH进入实时站点的服务器并引入更改。当您不知道是否要覆盖更改等内容时,可以击败通过FTP拖动文件的方法。我建议花一些时间来熟悉Git(如果您还没有的话),我发现它更容易并且更改/添加文件负载时,它比SVN麻烦得多(并且与SVN不同,它不会在所有地方放置愚蠢的
.svn
文件夹)。我在Mac上,因此抱歉,如果这些都不适用,但我将Coda用作代码编辑器,并通过Ports(使用Porticus)安装了Git。
如果我要重新设置一切,我会做:
安装Coda
安装Porticus(这需要您安装Ports,但该页面上有信息)
安装Porticus之后,将其打开,搜索“ git-core”并安装
下载并安装GitX 7-5。
这里有一个很好的指南来设置git repo,但基本是:1.打开终端。 2.
cd
到您希望站点驻留的位置。 $: mkdir mysite && cd mysite
3. $: git init
就是这样!如果您将文件添加到该文件夹中,然后继续下一步一旦在本地设置了GIT存储库(上文),那么如果您在GitX中打开该目录,则可以提交内容等。
在服务器上进行全部设置可能有点棘手,我有一个MediaTemple和Dreamhost帐户,它们都具有开箱即用的GIT。第5步中的链接告诉您如何添加远程回购,因此,在您要将现场站点加入方程式之前,不必这样做。我建议首先使所有内容在本地运行(与SVN不同,GIT不需要远程存储库,因此您可以暂时在计算机上完成所有操作)。
评论
您能否详细介绍一下您的工作流程,使用的工具/编辑器,如何在实时服务器上设置GIT等?我希望逐步学习如何使用GIT之类的设置。
–特拉维斯·诺斯库特(Travis Northcutt)
10年8月12日在15:51
我添加了一些入门步骤,祝您好运!
–乔·霍伊尔
10年8月12日在16:08
另外,您是否为GIT推荐了一个很好的教程?我正在使用Subversion,并且一直想切换很长一段时间,因为Subversion可能非常脆弱(也因为那些该死的.svn文件夹!!)
– MikeSchinkel
10年8月12日在16:18
乔,感谢您添加细节。我在PC上,但是我可以寻找等效的工具,而这对于其他Mac用户应该都很有用。
–特拉维斯·诺斯库特(Travis Northcutt)
2010年8月12日在16:48
我只能推荐git。它只是岩石。无论在哪个OS上。我经常在Linux和Windows上使用它(可以这么说:现在每天)。在Windows上有一个git bash。很棒的事情是:您直接拥有所有的Linux命令:code.google.com/p/msysgit
– hakre
2010年11月15日,0:05
#2 楼
我将SVN用于WordPress开发中所做的所有操作的版本控制。实际上,我之所以这样开始,是因为我需要SVN进行插件开发……从那里开始,这是自然的扩展,可以继续在客户端站点上使用SVN进行主题和自定义脚本。插件
由于插件已经托管在WordPress的服务器上,因此我只是直接将插件签出到本地WordPress安装的
/wp-content/plugins/
目录中(我在开发箱上运行WAMP)。然后,我对本地副本进行更改,并在准备好放映时将其提交到存储库。那里的过程很顺利,没有上载/下载以及我的更改是否能立即生效的证明。主题
主题有些不同,尤其是在为客户构建时。我创建一个本地存储库(为此专门在硬盘驱动器上有一个
R
分区),然后将空存储库直接检出到我的/wp-content/themes
目录中。然后,我根据需要进行更改并进行开发,直到准备就绪,然后再进行修订。当我准备将主题发布到客户端的生产服务器时,我将导出存储库,将其压缩并使用本机主题>>在WordPress中添加新功能。这也可以与自定义插件(不是由WordPress托管)一起使用。
工具
我说过,我在本地计算机上使用WAMP来运行WordPress的开发安装。它可以完美地在我的盒子上运行,并允许我运行特定项目所需的WordPress实例。
对于SVN,我使用Tortoise SVN。它是免费的,非常易于使用,并且与Windows的文件和命令结构集成在一起。只需单击鼠标右键,然后选择命令操作,即可进行更新,提交和导出。使用“导出”可以将整个文件夹(无烦人的
.svn
文件夹)直接发送到您选择的任何位置-我经常导出到桌面。压缩文件夹也是一种右键单击操作,WordPress可以处理上传。手动传输文件可能很麻烦,特别是如果您不断更改一个文件而不是全部文件时。如果您改为在整个目录中通过FTP选中“覆盖全部”,则替换旧文件要容易得多(并且不必跟踪更改的内容和未更改的内容)。就像WordPress过去的5分钟旧安装-只需用新版本替换所有内容即可。
#3 楼
就个人而言,我认为安装和管理SVN / GIT是一个有趣的练习,但是如果您每个月可以花15美元,Beanstalk值得每一分钱。他们为您管理整个服务器。 http://beanstalkapp.com/ FTP部署工具很棒。例如,当我提交时,Mine会自动将版本部署到我的登台服务器。获取个人文件版本控制的另一种方法是使用投递箱。每次将文件保存到保管箱时,它都会跟踪版本,以后您可以还原到任何以前的版本。您和另一个开发人员或组可以共享一个保管箱文件夹。当然,这不会进行中继,合并等操作,但是它确实使分布式团队可以非常轻松地在一个网站上工作。您只是不能真正真正地一次处理完全相同的文件。
我们将SVN工作副本保存在保管箱中,然后在写入时间时提交这些文件。我的设计师不会提交文件或处理SVN,所以这很麻烦。
我更喜欢SVN,因为我不需要GIT非常适合的所有中继,并且可以使用更好的GUI工具SVN。
#4 楼
我非常喜欢Aptana,它集成了Subversion,您可以轻松地通过ftp / sftp连接到服务器并向上推文件,它的另一个强大功能是,如果您创建一个新的php项目并包含“整个” WordPress文件夹(带有wp-admin,wp-includes),您将在主题文件中获得代码完成。在我的设置中,存储库是本地的。
评论
什么是“回购”?
–特拉维斯·诺斯库特(Travis Northcutt)
2010年8月12日15:50
“ repo”是“存储库”的常见简写。
– Trevor Bramble
2010年8月12日在16:11
“ repo” =“存储库”
– MikeSchinkel
2010年8月12日在16:17
我还在Aptana(在Win和Linux下)内使用git(egit插件),工作正常且简单。
– Bueltge
2011年3月29日在21:37
#5 楼
您要求“但我正在寻找人们用来在WordPress网站上保留已编辑文件的版本历史的设置/工作流程的特定示例”,但您还提到了产品:)作为工具和一些最佳做法的列表,但我将重点放在工作流程上:它们不是WORDPRESS专用的:
但是对于一般示例/设置/工作流程:
对于初学者:有CM模式,因此与工具无关。 Google的CM模式,大量书籍,甚至Wiki的社区,例如http://www.cmcrossroads.com/forums。
还有关于设置有效流策略(谷歌流策略)等的指南。
我认为与WordPress部署相比,没有什么特别之处CM Management包括大型Siebel,SAP,Informatica,Java等工厂上的分布式并行开发。实际上,这几乎是默认设置。
我想缺少的是,没有人为WordPress开发(至今)(IEEE)编写CMplan。一旦有人做到了(独立于工具)。我认为可以使用任何工具来满足要求。
我认为尚未编写计划的原因是,几乎所有WordPress实现仍由一个人完成,并且开发简单设置,这样就不必在构建阶段中由多个开发人员/设计人员来部署必须在测试环境中运行的不同版本。例如,
CMP计划首先要确定所有配置项: WordPress实现中所有类型的CI的列表,包括应用程序,插件,数据库,文档,帮助,内容,配置文件,发行说明(!)等)。这是一个好的开始。然后决定要带给CM的人。
接下来确定是什么原因导致这些配置项发生变化,例如客户致电寻求错误修正或所需的升级。如果做得正确,这会导致您感觉事情在控制之中。
诸如从生产合并到开发以及如何处理该章中的内容之类的决策(2个主要模式) (当然,您应该尝试最小化这些修补程序)。
仅稍后寻找一种工具来在一侧进行CM(其中包括版本管理作为工具之一)并在其上更改管理工具另一面(让您保持理智)。
我认为这是最好的工作流程,因为据我搜索,到目前为止还没有人做。我认为,一旦第一个人编写了WordPress CM计划(根据IEEE),世界上所有其他WordPress人士都可以复制该计划并进行调整并在其工具中实施模式。
不是太多的工作/太沉重了:取决于您是否有公司:拥有良好的CM计划可以节省一天的大量时间。
#6 楼
我在共享主机上,因此无法安装SVN或类似的工具。我使用Mercurial在家用计算机上进行版本控制。我使用Beyond Compare的FTP同步来保持本地和远程文件夹同步。#7 楼
我正在使用git。这很简单。您只需要了解简单的命令,例如clone,commit,push,pull,就可以开始了。这是最基本的。尽管,如果您更多地使用git,例如协调团队来开发产品,那又是另一个层次。但最后,值得使用git或任何版本控制。发生屎的时候是可以实现的。
评论
麦克,很好奇-为什么标题要编辑?在我看来,题名应遵循适当的语法规则。也许对于meta ...来说是一个很好的讨论。您已经是有关meta,tnorthcutt的讨论的一部分。 :)