搜索
首页CMS教程WordPress使用Git发布WordPress插件

使用Git发布WordPress插件

Sep 03, 2023 pm 02:45 PM
git - 版本控制系统wordpress - 开源的内容管理系统

如果您在 WordPress 存储库上托管了一个插件,那么您将会相当熟悉 SVN 及其一些命令。在本教程中,我将向您展示如何使用 Git(另一个由 GitHub 普及的版本控制系统)来发布和维护您的插件。


什么是 Git?

Git 和 SVN 都是版本控制系统的示例。 WordPress 的存储库使用后者(如果您有 WordPress 上托管的插件,您将熟悉“签入”以对此存储库进行更改)。它们都允许您跟踪代码的更改,但它们之间的执行方式存在很大差异。

SVN 依赖于代码的单个“中央存储库”(在我们的上下文中:WordPress 插件存储库)。每次您想要编辑插件时,都需要制作本地副本、进行更改,然后将这些更改“签入”到 WordPress 存储库。

Git 是一个分散的版本控制系统。您不仅拥有插件的本地副本,还拥有插件存储库的完整克隆,并包含其所有更改。该存储库现在独立存在于您的计算机上。您可以在本地计算机上提交并跟踪更改、恢复更改或向不同方向“分支”插件。只有当您愿意更新插件时,您才会将更改推送到 WordPress 存储库以将其公开。

在本教程中,我假设您已在 WordPress 插件存储库上托管了一个插件,或者至少您的托管请求已获得批准。如果您不确定如何让 WordPress 托管您的插件,我建议您阅读我们有关如何发布到 WordPress 插件存储库的文章。


使用 Git 相对于 SVN 有哪些优势?

支持和反对使用 Git 而不是 SVN(以及一般的去中心化版本控制系统)有很多争论。其中许多源于 Git 和 SVN 跟踪更改的根本不同方式。 CodeForest 的 Git vs SVN 文章对 Git 和 SVN 进行了精彩、深入的分析,但对于 WordPress 开发人员来说:

  • 离线访问 – 您可以在自己的个人“开发存储库”上进行提交并跟踪提交。仅当您想要公开更改时,才需要访问 WordPress 存储库。
  • 一旦您学会了 Git,就会更容易使用 - 本文将引导您完成在存储库中进行更改和更新所需的基本工作流程。我在底部链接到了一些资源,其中提供了有关使用 Git 的更多详细信息。
  • GitHub – 让我们面对现实吧,这就是我们大多数人听说 Git 的方式。 Git 的去中心化特性使其能够鼓励“社交编码”。您可以在 GitHub 上保留插件的副本,鼓励社区参与并进行改进或扩展,然后您可以将其包括在内。一般来说,向其他开发人员公开您的插件是个好主意。
  • 轻松“分支”您的插件 - 您可以在本地副本上创建“实验”分支来测试可能的新功能,然后如果它们有效,则在发布下一个版本时将它们合并回来插件。

使用 Git 的一个缺点是让它与 SVN 存储库很好地配合。由于 git svn,这实际上并不难,本文就是为了指导您完成它。


第1步下载Git

如果您还没有安装 Git,您需要安装它。 Git 社区书籍和 Pro Git 书籍(如果您是 Git 新手,这两个优秀资源)中详细介绍了如何安装 Git。如何安装 Git 将取决于您的操作系统,以及您可以使用哪些 GUI 程序。在本教程中,我将通过命令行完成所有操作 - 我鼓励您也这样做。在文章的最后,我将推荐一些您可以使用的 GUI 程序,但通常,我只使用它们来帮助可视化存储库的分支。


第 2 步克隆插件的 WordPress 托管存储库

如前所述,使用 Git,您无需“签出”插件的副本 - 您可以克隆存储库,并包含所做更改的历史记录及其所有分支和标签。第 1 步是克隆插件的 WordPress 托管存储库。作为示例,我将根据之前的教程发布一个“帖子类型档案链接”插件。因此(一旦您被 WordPress 存储库接受)打开您的命令行界面,然后导航到您想要存储插件本地版本的位置。我将把它放在一个名为“Plugins”的文件夹中。一旦到达那里,我们想要告诉 Git 在哪里可以找到我们的插件。截至撰写本文时,WordPress 存储库中托管着近 20,000 个插件,并且有超过 500,000 个修订版本。我们不想等待 Git 遍历每一个来找到我们的插件。因此,首先,我们找到插件的起始版本(我们希望它是整个历史记录)。为此,我们获取插件的第一个日志(最初将其添加到存储库时):

svn log -r 1:HEAD --limit 1 http://plugins.svn.wordpress.org/your-plug-in-name

它会思考一段时间,然后你应该看到类似这样的内容:

r520657 | plugin-master | 2012-03-19 03:56:31 +0000 (Mon, 19 Mar 2012) | 1 line

使用Git发布WordPress插件

我的插件的第一个数字“520657”是第一个修订版。我们将在下一个命令中使用它,告诉 Git 克隆我们插件的历史记录。将 XXXXXX 替换为您的修订号。

git svn clone -s -rXXXXXX --no-minimize-url http://plugins.svn.wordpress.org/your-plug-in-name
cd your-plugin-name
git svn fetch
git svn rebase

-s”告诉 Git 期望 SVN 存储库的标准(标签、主干、分支)布局。 '--no-minimize-url' 会阻止它在插件文件夹之外查找。 确保它没有丢失。如果您忽略它,您最终可能会复制整个 WordPress 插件存储库。 -rXXXXXX 告诉 Git 要查找的修订版本。如果你忽略它,Git 将搜索存储库的整个历史记录。修改次数超过 500,000 次。我有一次遗漏了这个,花了大约两个小时。安装完毕后,应该只需要几分钟。

使用Git发布WordPress插件

完成后,您应该会发现它在“插件”文件夹中创建了一个名为“您的插件名称”的文件夹。让我们来探索一下。导航到“您的插件名称”文件夹并运行命令以查看存在哪些“分支”:

git branch -a

这将列出所有分支,本地和远程。唯一的本地分支应该是 Master (星号表示这是您所在的分支)。其他分支是“主干”,如果有的话,每个标签都有一个分支(SVN 将标签视为分支,但 Git 比这更聪明)。

转到“本地文件夹”“plugins/your-plugin-name”,您应该会看到插件文件(如果有)。在其中创建或编辑任何文件之前,我们将创建一个单独的分支来处理。

更新:由于 Neerav 和 John Eckman 在下面的评论中指出的问题,上述命令已更新。上面的代码现在反映了 Stephen Harris 的建议。


第3步(可选)推送到GitHub

使用 Git 的好处之一是您可以轻松地在 GitHub 上维护插件的版本。这使得其他开发人员更容易访问您的插件,他们可能会提出改进建议,甚至进行自己的修改,您可以将其拉入您自己的存储库中。如果您已经设置了 GitHub,此时您可能希望将插件推送到您的帐户。为此,首先在 GitHub 帐户上为自己创建一个新存储库,然后将其作为远程分支添加到本地存储库:

git remote add origin git@github.com:<your-user-name>/<your-repo-name>.git

your-user-name”是指您的 GitHub 用户名,“your-repo-name”是指您在其上创建的存储库的名称GitHub。然后你只需推送本地存储库:

git push origin master

第 4 步编辑插件:工作流程概要

我们将创建一个新的分支“work”。我们将在这个分支内更改插件、进行更改并添加功能等。这意味着我们的“主”分支保持其原始状态。这允许我们切换回 Master 分支,并再次分支。特别是,假设当您在“工作”分支中开发一些新功能时,您的插件中发现了一个主要错误。您可以切换回您的“主”分支(其中不包括您当前正在处理的任何功能),提交错误修复,然后将其推送到 WordPress 存储库。然后,您可以切换回工作分支并从上次中断的地方继续。 (注意:Git 不会创建文件的副本 - 您的本地文件夹中始终只有一组文件。这些文件包含的内容取决于您所在的分支。)

事实上,为要添加到插件中的每个新功能创建一个分支是个好主意。完成后,您只需将它们合并回主分支即可。如果这导致任何“冲突”,系统会要求您手动解决这些问题。

首先创建一个名为“work”的分支:

git branch work

然后“签出”(转到)分支“工作”:

git checkout work

使用Git发布WordPress插件

一条消息将告诉您您已切换到“工作”分支。现在,使用您最喜欢的文本编辑器打开本地文件夹中的插件文件(如果还没有任何文件,则创建它们)。创建一些文件后,您可能想查看更改了哪些文件。您可以使用简单的命令来完成此操作:

git status

这将列出已跟踪未跟踪文件的更改。可能存在您不希望 Git 跟踪的文件(例如临时文件),但如果您向该文件夹添加了任何新文件,则需要告诉 Git 跟踪它们。您可以使用以下命令执行此操作:

git add <file-name>

我在本地文件夹中创建了两个文件“post-type-archive-links.php”和“metabox.js”,因此我添加了他们告诉 Git 跟踪他们。您必须确保您正在跟踪您的自述文件。

使用Git发布WordPress插件

您还可以查看自上次提交以来的更改(这是 GUI 程序变得非常方便的地方)

git diff

一旦您想要将更改提交到本地存储库:

git commit -a -m "Did abc to xyz"

提供提交中包含的更改的(详细)消息。

使用Git发布WordPress插件

在进行更改的过程中,您可以(并且应该)尽可能频繁地提交 - 但以合乎逻辑的方式,最好为您所做的每件“事情”进行一次提交。您还应该确保您的提交中没有明显的错误。 “撤消”一次提交既快速又轻松:您可以通过执行另一次提交来逆转前一次提交来完成此操作:

git revert HEAD

(系统会提示您输入一条消息来描述此提交。)


第 5 步提交到 WordPress 存储库

假设您现在想要将所有更改推送到 SVN 存储库。在这样做之前,我们需要记住一些事情。 Git 鼓励您经常提交,对于开发而言,这样做是一个很好的实践。不过,您的 WordPress 插件存储库可供分发。它不需要每一次提交。事实上,正如 Otto(WordPress 核心贡献者)警告的那样,它也确实不想要它:

“如果我发现你[分别推送每个提交],那么我将禁止你访问 WordPress.org。SVN 只需要提交你的最终工作版本,而不是数百个的整个历史记录。您使用 Git 所做的更改。将您的更改扁平化为单个提交。”

为了避免这种情况,当我们准备好推送到 WordPress 存储库时,我们会将所有提交合并为一个提交。有几种方法可以做到这一点。我们将把工作分支中的更改合并(并同时压缩)到主分支中。然后我们所有的更改都会作为主分支上的一次提交出现。然后我们删除工作分支并将主分支推送到插件的 SVN 主干。

首先,我们要切换回 Master 分支:

git checkout master

然后将工作分支更改压缩并合并到主分支中:

git merge --squash work

如果对主分支进行了更改,则合并中可能会出现冲突。系统会提示您在合并完成之前手动解决这些冲突。合并后,提交更改(这一提交将包含我们工作分支的所有提交):

git commit -a -m "Made changes a,b,c,d"

最后,我们删除工作分支

git branch -D work

使用Git发布WordPress插件

如果您有多个分支想要合并,那么您可以对每个分支执行此操作。还有一些替代方法可以扁平化您的历史记录(例如交互式变基),我不会介绍这些方法。

此时,如果您愿意,您可以将最新更改推送到您的 GitHub 帐户:

git push -u origin master

要推送到 WordPress 存储库,我们首先确保我们的本地存储库是“最新的”:

git svn rebase

然后,Git 将获取您的 subversion 存储库,并将其中的任何更改与我们刚刚所做的更改合并。通常情况下,WordPress 存储库不应有任何更改,因此您应该看到以下消息:当前分支 master 已更新

现在我们可以将更改推送到 WordPress 存储库

git svn dcommit

然后,Git 可能会提示您输入 WordPress.org 凭据。输入后,您的更改将提交到 WordPress 存储库。很快您就会收到来自 WordPress 存储库的一封电子邮件,通知您提交情况。

使用Git发布WordPress插件


第 6 步标记新版本

目前,这些更改将放在后备箱中。如果我们想标记插件的新版本怎么办?为插件创建下一个版本时,您应该更新自述文件,以便稳定标签指向您的新版本(例如“2.0”)。您还应该在 your-plug-in-name.php 文件中更新插件的标头信息。如果您忘记执行此操作,只需执行上述过程并进行这些更改即可。

一旦您的“主干”完全更新(包括最新版本信息),我们只需在 WordPress 存储库中创建新标签即可:

git svn tag "2.0"

这会将 trunk 中的所有内容复制到 tags/2.0 中(通常使用 svn cp trunktags/2.0 在 SVN 中实现的效果)。

使用Git发布WordPress插件

如果您想在本地存储库中标记版本:

git tag -a 2.0 -m"Tagging 2.0"

第 7 步(可选)在 GitHub 上标记新版本

与我们对 WordPress 存储库所做的类似,确保我们的存储库同意,然后推送我们的更改和标签:

git pull --rebase origin master 
git push origin master 
git push origin --tags

Git 命令的有用资源

  • Git 参考(有一个关于“如何像 Git 一样思考”的很好的部分)
  • Git 社区书籍
  • Pro Git 书籍
  • Git Ready(与其说是指南,不如说是“片段”集合)
  • SVN 到 Git 速成课程(如果您已经使用 SVN 一段时间,会有帮助)
  • Git Magic(Git 的友好介绍)

最后,还有一些可能会派上用场的 Git “备忘单”:此处和此处。


GUI Git 程序

窗口

  • TortoiseGit(与 Windows 资源管理器集成良好的流行程序)
  • msysgit

苹果电脑

  • Git 塔
  • GitHub for Mac(来自为您带来 GitHub 的人)

Linux / 跨平台

  • GitG(这是我使用的)
  • QGit
  • Git Cola(跨平台)

以上是使用Git发布WordPress插件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
WordPress与其他流行的CMS平台相比如何?WordPress与其他流行的CMS平台相比如何?May 02, 2025 am 12:18 AM

WordPressExcccelineaseeandaDaptability,MakeitiTidealForBeginnersandsMallTomedium-SizedBusinesses.1)siseofuse:wordpressisuser-Frylyly.2)安全:drupalleadswithstrongsecurityfeatures.3)性能:performance:performance formation:ghandoffersefersefersefersefersefersefersefersexcellentperformanceeduetonodeutonode.jsorscor.jssor.jjsy.jjsy.jjsy.4)4)

您可以使用WordPress构建会员网站吗?您可以使用WordPress构建会员网站吗?May 01, 2025 am 12:08 AM

Yes,youcanuseWordPresstobuildamembershipsite.Here'show:1)UsepluginslikeMemberPress,PaidMemberSubscriptions,orWooCommerceforusermanagement,contentaccesscontrol,andpaymenthandling.2)Ensurecontentprotectionwithupdatedpluginsandadditionalsecuritymeasures

WordPress是否需要编码知识作为CMS?WordPress是否需要编码知识作为CMS?Apr 30, 2025 am 12:03 AM

你不需要编程知识就能使用WordPress,但掌握编程可以提升体验。1)使用CSS和HTML可以调整主题样式。2)PHP知识能编辑主题文件,添加功能。3)自定义插件和元标签可优化SEO。4)注意备份和使用子主题以防更新问题。

使用WordPress时的安全考虑是什么?使用WordPress时的安全考虑是什么?Apr 29, 2025 am 12:01 AM

TosecureaWordPresssite,followthesesteps:1)RegularlyupdateWordPresscore,themes,andpluginstopatchvulnerabilities.2)Usestrong,uniquepasswordsandenabletwo-factorauthentication.3)OptformanagedWordPresshostingorsecuresharedhostingwithawebapplicationfirewal

WordPress与其他网站构建者相比如何?WordPress与其他网站构建者相比如何?Apr 28, 2025 am 12:04 AM

WordPressExcelSoverotherWeberteBuilderSduetoItsflexible,可伸缩性,andopen-sourcenature.1)它'saversatilecmswithExtEnsextEnsiveCustomizedOptionsVIATHEMESANDPLUGINS.2)它的alllearbutoffersbutoffersbutoffersbutoffersbutofferspopelyContrololonCemastered.3)

5个WordPress插件,供开发人员在2025年使用5个WordPress插件,供开发人员在2025年使用Apr 27, 2025 am 08:25 AM

2025年网站开发的七个必备WordPress插件 在2025年建立顶级WordPress网站需要速度,响应能力和可扩展性。 实现这种有效的实现通常取决于战略插件的选择。 这篇文章Highlig

您将使用WordPress做什么?您将使用WordPress做什么?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress适合创建投资组合网站吗?WordPress适合创建投资组合网站吗?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!