开始使用Subversion、Git或类似的版本控制系统来保存我的文件的历史记录?

时间:2010-08-12 作者:Travis Northcutt

我意识到表面上这可能是一个广泛的问题,但我正在寻找人们用来在WordPress网站上保存已编辑文件的版本历史记录的设置/工作流的具体示例。例如,在开发网站时(甚至在网站上线之后),我经常对CSS和PHP文件进行更改,但我没有很好的方法恢复到这些文件的旧版本。就我而言,在本地开发安装上进行更改,然后将这些更改复制到实时站点通常比我希望的要麻烦得多。关于如何开始使用版本控制工具跟踪对实时站点上文件的编辑,有什么建议吗?

7 个回复
最合适的回答,由SO网友:Joe Hoyle 整理而成

我不确定你对使用版本控制了解多少,但我最近从SVN切换到Git,发现这很棒!

尽管这取决于你的live站点的服务器是否安装了Git(或者是否允许)。我在live server上也有一个Git设置,运行一个名为production. 每当我在本地完成某个实现/修复时,我都会将其合并到production 分支,然后使用SSH连接到live站点的服务器,并引入更改。胜过在FTP上拖动文件,因为您永远不知道是否正在覆盖更改等。

我建议您花点时间熟悉Git(如果您还没有),我发现在更改/添加文件负载方面,它比SVN容易得多,也不那么麻烦(而且与SVN不同,它不会让人觉得愚蠢.svn 文件夹无处不在。

我在Mac上,如果这些都不适用,很抱歉,但我使用Coda 作为代码编辑器,通过端口安装Git(使用Porticus)。

如果我要重新安排一切,我会:

安装Coda

  • 安装Porticus (这将要求您安装端口,但该页面上有相关信息)

    安装Porticus后,打开它,搜索“git core”并安装它。

    下载并安装GitX 7-5

  • 关于建立git回购,有一个很好的指南here, 但最基本的是:1。打开端子。2.cd 到您希望站点驻留的位置。$: mkdir mysite && cd mysite 3.$: git init 就这样!如果将文件添加到此文件夹,请继续下一步

    一旦您在本地设置了GIT存储库(上文),那么如果您在GitX中打开该目录,您将能够提交内容等。

    在服务器上设置这一切可能有点棘手,我有一个MediaTemple和一个Dreamhost帐户,这两个帐户都有现成的GIT。第5步中的链接告诉你如何添加远程回购协议,所以你不必这样做,直到你想把你的实时网站纳入等式。我建议您首先在本地完成所有工作(与SVN不同,GIT不需要远程存储库,因此您暂时可以在机器上完成所有工作)。

  • SO网友:EAMann

    我使用SVN对WordPress开发中所做的一切进行版本控制。实际上我是这样开始的,因为我需要SVN来开发插件。。。一旦我开始使用SVN,在客户端站点上继续使用SVN进行主题和自定义脚本是很自然的扩展。

    插件

    由于插件已经托管在WordPress的服务器上,我只需直接向/wp-content/plugins/ 我的本地WordPress安装目录(我在开发箱上运行WAMP)。然后,我对本地副本进行更改,并在它准备好用于showtime时提交到存储库。这是一个平稳的过程,没有上传/下载,也没有即时验证我的更改是否有效。

    主题有点不同,尤其是在为客户构建时。我创建了一个本地存储库(我有一个R 我的硬盘上的分区(专门用于此目的)并直接将空存储库签出到我的/wp-content/themes 目录然后,我根据需要进行更改并进行开发,直到准备就绪,并在进行时提交修订。

    当我准备将主题发布到客户机的生产服务器时,我会导出存储库,对其进行压缩,并使用本机主题>>;在WordPress中添加新功能。这也适用于自定义插件(不由WordPress托管)。

    工具就像我说的,我在本地机器上使用WAMP来运行WordPress的开发安装。它在我的机器上运行得很好,允许我运行特定项目所需的任意多个WordPress实例。

    对于SVN,我使用Tortoise SVN. 它是免费的,非常容易使用,并且与Windows的文件和命令结构集成。更新、提交和导出都是简单的右键单击、选择命令操作。使用;“导出”;允许您发送整个文件夹(无需.svn 文件夹)直接到您选择的任何位置-我经常导出到桌面。压缩文件夹也是一个右键单击操作,WordPress处理上传。

    手动传输文件可能会很麻烦,尤其是如果您不断更改一个文件而不是所有文件。如果您改为使用“FTP”在整个目录上传输文件;“全部覆盖”;选择此选项后,替换旧文件就容易多了(而且您不必跟踪哪些文件已更改,哪些文件未更改)。就像WordPress过去的5分钟安装一样——只需用新版本替换所有内容。

    SO网友:Andrew

    就我个人而言,我认为安装SVN/GIT并对其进行管理是一项有趣的工作,但如果你每月能赚15美元,Beanstalk是物有所值的。他们为您管理整个服务器。http://beanstalkapp.com/ FTP部署工具非常棒。例如,当我提交时,Mine会自动将版本部署到我的临时服务器

    获取个人文件版本控制的另一种方法是使用drop box。每次将文件保存到dropbox时,它都会跟踪版本,您可以稍后还原到任何以前的版本。。您和其他开发人员或组可以共享drop box文件夹。尽管这不适用于集群、合并等,但它确实让分布式团队在一个网站上工作变得非常容易。你不可能一次处理完全相同的文件。

    我们将SVN工作副本保存在dropbox中,然后在写入时提交文件。我的设计人员不会提交文件或处理SVN,因此这是综合。

    我更喜欢SVN,因为我不需要GIT非常适合的所有集群,而且SVN有更好的GUI工具可用。

    SO网友:Amit

    我喜欢Aptana 很多情况下,its集成了subversion,您可以使用ftp/sftp轻松连接到服务器并向上推送文件,它的另一个伟大功能是,如果您创建一个新的php项目并包含“整个”WordPress文件夹(使用wp admin,wp includes),您可以在主题文件中完成代码。

    在我的设置中,回购是本地的。

    SO网友:edelwater

    你要求“但我在寻找人们用来在WordPress网站上保存已编辑文件的版本历史记录的设置/工作流的具体示例”,但你也提到了产品:)

    以上是一系列工具和一些最佳实践,但我将重点介绍工作流:它们不是WORDPRESS特有的:

    但对于一般示例/设置/工作流:

    首先:有CM模式,所以与工具无关。谷歌的CM模式,很多书,甚至维基的社区。http://www.cmcrossroads.com/forums.

    还有一些关于建立有效的流策略(谷歌流策略)的指南,等等。。。

    我不认为WordPress部署与CM管理相比有什么特别之处,包括在大型Siebel、SAP、Informatica、Java等平台上进行分布式并行开发。。工厂。这几乎是违约。

    我认为,缺少的是,没有人为WordPress开发(尚未)(IEEE)编写CMplan。一旦有人这样做了(工具无关)。我认为,这些要求可以用任何工具填写。

    我认为该计划尚未制定的原因是,几乎所有WordPress的实现仍然由一个人通过简单的开发-生产设置完成,因此在构建阶段,多个开发人员/设计师不必部署在测试环境中运行的不同版本。

    CMP计划从识别所有CI开始,换句话说:列出WordPress实现中存在的所有类型的CI,包括应用程序、插件、数据库、文档、帮助、内容、配置文件、发行说明(!),等等……)。这是一个良好的开端。然后决定哪些要纳入CM。

    接下来决定是什么导致这些CI发生更改,例如客户要求进行错误修复或需要升级。如果做得好,这会导致一种情况,让你感觉事情在掌控之中。

    诸如从生产到开发的合并以及处理方法等决策是该章的一部分(这里有两种主要模式)(当然,您应该尽量减少这些修补程序)。

    只有在以后,才能在一边寻找一个工具来进行CM(其中包括作为工具之一的版本管理),在另一边寻找变更管理工具(这可以让您保持理智)。

    我认为这是最好的工作流程,因为据我在google上搜索,还没有人这样做。我认为,一旦第一个人编写了WordPress CM计划(根据IEEE),世界上其他所有WordPress人都可以复制该计划,并在他们的工具中进行调整和实现模式。

    这不是太多工作/太重吗:取决于你是否有公司:有一天制定一个好的CM计划可以帮你省下很多时间。

    SO网友:CAD bloke

    我在共享主机上,因此无法安装SVN或类似的东西。我使用Mercurial在家用机器上进行版本控制。我使用Beyond Compare的FTP同步来保持本地和远程文件夹的同步。

    SO网友:justjoe

    我正在使用git。很简单。你只需要理解一些简单的命令,比如克隆、comit、push、pull,就可以开始了。这是最基本的。

    尽管如此,如果您更多地使用git,比如协调团队开发产品,那么这是另一个层次。但最终,使用git或任何版本控制都是值得的。大便发生的时候是有可能的。

    结束

    相关推荐