it-swarm.cn

Subversion,Git或类似的版本控制系统入门,以保存我的文件的历史记录?

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

31
Travis Northcutt

我不知道你对使用版本控制有多了解,但我最近从SVN切换到GIT并发现它很棒!

虽然它取决于你的直播站点的服务器安装了GIT(或将让你)。我在实时服务器上也有一个GIT设置,运行一个名为production的分支。每当我在本地完成/修复某些内容时,我会将其合并到production分支中,然后通过SSH连接到实际站点的服务器并提取更改。当您永远不知道是否覆盖更改等时,节拍通过FTP拖动文件。

我建议花点时间用GIT(如果你还没有),我发现它更容易,而且比SVN更轻松,当涉及到更改/添加文件的负载时(和SVN不同,它不会愚蠢) .svn文件夹 无处不在 )。

所以:

当然,我在Mac上,很抱歉,如果这些都不适用。

代码编辑器: Coda 通过端口安装GIT(使用Porticus)Git: GitX

如果我要把所有东西都设置为新的,我会这样做:

  1. 安装 Coda

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

  3. 一旦安装了Porticus,打开它,搜索“git-core”并安装它。

  4. 下载并安装 GitX 7-5

  5. 有一个关于设置git repo的好指南 这里 ,但它基本上是:1。打开终端。 2. cd到您希望站点所在的位置。 $: mkdir mysite && cd mysite 3. $: git init就是这样!如果将文件添加到此文件夹,请继续执行下一步

  6. 一旦你在本地设置了一个GIT存储库(上面的文章),那么如果你在GitX中打开那个目录,你将能够提交东西等等。

在服务器上设置它可能有点棘手,我有一个MediaTemple和一个Dreamhost帐户,它们都有开箱即用的GIT。 5.中的链接告诉您如何添加远程仓库,除非您想将现场网站纳入等式,否则不必这样做。我建议首先让所有内容在本地运行(与SVN不同,GIT不需要远程存储库,因此您可以暂时停止计算机上的所有内容)

14
Joe Hoyle

我使用SVN进行版本控制,使用 everything 我在WordPress开发中。我实际上是以这种方式开始的,因为我需要SVN进行插件开发......一旦我开始使用SVN,它就是继续在客户端站点上使用SVN进行主题和自定义脚本的自然扩展。

插件

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

主题

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

当我准备将主题发布到客户端的生产服务器时,我导出存储库,Zip它,并使用WordPress中的本机主题>>添加新功能。这适用于自定义插件(不是由WordPress托管)。

工具

就像我说的,我在本地机器上使用WAMP来运行WordPress的开发安装。它在我的盒子上完美运行,并允许我运行尽可能多的WordPress实例,因为我需要一个特定的项目。

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

手动传输文件可能很麻烦,特别是如果您不断更改一个文件而不是全部文件。如果您选择“覆盖所有”来覆盖整个目录上的FTP,则更换旧文件会更容易(并且您不必跟踪哪些已更改,哪些没有更改)。这就像WordPress过去使用的旧5分钟安装 - 只需用新版本替换所有东西。

8
EAMann

就个人而言,我认为安装SVN/GIT并进行管理是一项有趣的练习,但如果你每月可以挣15美元,那么Beanstalk就值得每一分钱。他们为您管理整个服务器。 http://beanstalkapp.com/ FTP部署工具很棒。例如,当我提交时,我自动将版本部署到我的登台服务器

获得一些个人文件版本控制的另一种方法是使用drop box。每次将文件保存到保管箱时,它都会跟踪版本,您可以在以后恢复到以前的任何版本。您和其他开发人员或组可以共享一个投递箱文件夹。虽然这不是中继,合并等,但它确实使分布式团队在一个网站上工作变得非常容易。你不能一次真正处理完全相同的文件。

我们将SVN工作副本保留在dropbox中,然后在写入时提交文件。我的设计师不会提交文件或处理SVN,所以这就是comprimise。

我更喜欢SVN,因为我不需要GIT非常棒的所有中继,并且有更好的SVN GUI工具。

3
Andrew

我喜欢 Aptana 很多,它集成了Subversion,你可以轻松连接你的服务器ftp/sftp并推送文件,它的另一个很棒的功能是如果你创建一个新的php项目并包含“整个”WordPress文件夹(使用wp-admin,wp-includes)可以在主题文件中获得代码完成。

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

2
Amit

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

您将上面的工具列表和一些最佳实践作为答案,但我将重点关注工作流程:它们不是WORDPRESS特定的:

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

对于初学者:有CM模式,因此独立于工具。关于CM Patterns的谷歌,很多书,wiki甚至是社区,例如 http://www.cmcrossroads.com/forums

还有关于设置有效流策略(谷歌流策略)等的指南......

与CM Management相比,我认为WordPress部署没有什么特别之处,包括在大型Siebel,SAP,Informatica,Java等工厂上进行分布式并行开发。这几乎是默认的。

我认为,缺少的是没有人为WordPress开发(IEEE)编写CMplan。一旦有人这样做(独立于工具)。我认为,可以使用任何工具填写要求。

我认为计划尚未编写的原因是,几乎所有的WordPress实现仍由一个人完成,只需一个简单的开发生产设置,因此在构建阶段不需要部署不同版本的不同版本。例如,测试环境。

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

接下来决定导致这些CI发生变化的原因,例如:客户要求修复错误或需要升级。如果做得好,这会导致你感觉事情得到控制。

从生产到开发的合并以及处理方式的决策是该章的一部分(这里有两个主要模式)(尽管你应该尽量减少这些修补程序)。

之后才会寻找一种工具来一边做CM(其中包括版本管理作为工具之一),另一方面改变管理工具(让你保持理智)。

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

这不是太多的工作/太沉重:取决于你是否有公司:它可以节省你的屁股一天很大的时间来制定好的CM计划。

1
edelwater

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

0
CAD bloke

我正在使用git。这很简单。你必须要理解简单的命令,如克隆,comit,推,拉,你准备好了。这是基本的。

尽管如此,如果你更多地使用git,比如协调团队来处理产品,那么它就是另一个层次。但最后,它使用git或任何版本控制。当狗屎发生时,这是可行的。

0
justjoe