WP DEVELOP

EP116. “Git 基础:初始化仓库与 .gitignore”

首页 WordPress 开发课程 网站上线部署 · EP116
约 6 分钟· #EP116#网站上线部署
🔒 登录后可标记已读

从零开始搭 Git 工作流的第一步:确认本机装了 Git、配置全局用户名/邮箱、决定要跟踪哪个文件夹、初始化仓库、写 .gitignore 排除不需要版本控制的文件、第一次提交,并演示 git checkout -- . 可以撤销未提交的修改。作者给出了自己的经验判断:只跟踪 wp-content 文件夹(主题、插件、mu-plugins),不跟踪 WordPress 核心文件(核心交给线上服务器自动更新,减少人为管理成本)。


涉及文件

  • wp-content/.gitignore (新建)

代码实现

检查/安装 Git,配置身份信息(终端命令):

# 检查是否已安装
git --version

# 首次使用前配置身份(只影响提交记录里的作者信息,不涉及任何账号注册)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

选定 wp-content 目录作为仓库根目录并初始化

# 在 VS Code 里打开 wp-content 文件夹,打开终端后执行
git init

wp-content/.gitignore(新建,排除不需要版本控制的文件/目录)

uploads
node_modules
upgrade
upgrade-temp-backup
ai1wm-backups
.DS_Store
/index.php
/themes/index.php
/plugins/index.php

基本工作流:查看状态、暂存、提交、撤销

# 查看哪些文件有变动
git status

# 暂存全部变动(等同于把改动加入下次要提交的清单)
git add -A

# 提交(锁定这一批变动的快照)
git commit -m "our first commit"

# 撤销所有未提交的修改,恢复到最近一次提交时的状态
git checkout -- .

关键改动点:

  • 只跟踪 wp-content,不跟踪 WordPress 核心系统文件——这是作者的个人经验选择,理由是「让线上服务器自动更新核心版本、自己只手动管理真正会改动的主题/插件代码」,减少要维护的范围;他提到自己也见过反过来把核心文件也纳入版本控制、手动管理更新的做法(适合对更新极度谨慎、需要先在本地测试每次核心更新的场景),但对大多数网站不推荐
  • .gitignoreuploads 不加前导斜杠,表示忽略任何层级下名为 uploads 的文件夹(媒体库上传的文件本地测试用的和线上正式的不需要同步)
  • node_modulesupgradeupgrade-temp-backupai1wm-backups 都是构建工具/WordPress 自身/迁移插件生成的临时或依赖文件,没有跟踪的必要
  • .DS_Store 是 macOS 系统自动生成的隐藏文件,跟项目内容无关
  • /index.php/themes/index.php/plugins/index.php 前面必须带斜杠,表示只忽略 wp-content 根目录、themes 目录、plugins 目录下这几个特定路径的 index.php(这几个文件本身是空的,只是 WordPress 用来防止别人直接浏览目录结构的占位文件),不加斜杠的话会误伤所有主题/插件内部真正有用的 index.php 文件(比如某些主题模板本身就叫 index.php
  • git checkout -- . 可以让因为误删文件或写错代码而"崩溃"的项目瞬间恢复到最近一次提交的状态,前提是这些改动还没有被提交锁定过

常见坑

  • .gitignore 里忽略 index.php 时忘记加前导斜杠——不加斜杠会匹配所有层级下名叫 index.php 的文件,把主题/插件内部真正需要版本控制的同名文件也一并排除掉

延伸 / 后续讲座会用到

现在本地仓库已经能记录变更历史,但还没有「推送到线上服务器」的能力——下一讲要把线上服务器配置成一个可以接收 git push 的远程仓库。


Sources

Udemy:

  • Become a WordPress Developer: Unlocking Power With Code — Section 21, EP116