EP116. “Git 基础:初始化仓库与 .gitignore”
🔒 登录后可标记已读从零开始搭 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 核心系统文件——这是作者的个人经验选择,理由是「让线上服务器自动更新核心版本、自己只手动管理真正会改动的主题/插件代码」,减少要维护的范围;他提到自己也见过反过来把核心文件也纳入版本控制、手动管理更新的做法(适合对更新极度谨慎、需要先在本地测试每次核心更新的场景),但对大多数网站不推荐 .gitignore里uploads不加前导斜杠,表示忽略任何层级下名为uploads的文件夹(媒体库上传的文件本地测试用的和线上正式的不需要同步)node_modules、upgrade、upgrade-temp-backup、ai1wm-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