在 Git 的管理机制中,控制“哪些本地文件不需要上传到 GitHub”是通过博客根目录下的一个特殊配置文件 —— .gitignore 来实现的。
如果你在执行 git add . 时不想把几万个缓存和依赖文件(如 node_modules)打包进去,只需要在根目录下配置好这个文件。
以下是完整的操作方法和针对 Hexo 博客最标准的配置模版:
第一步:在博客根目录创建 .gitignore 文件
- 打开你本地的博客根目录。
- 检查是否已经存在一个名为
.gitignore的文件(注意前面有一个点.,在 Mac 上可能是隐藏文件,可以用Command + Shift + .显示隐藏文件)。 - 如果没有,直接在 VS Code、文本编辑器中新建一个文件,保存并起名为 **
.gitignore**(没有任何后缀名)。
第二步:将忽略规则复制进去
打开 .gitignore 文件,把下面这段专门针对 Hexo 博客的标准忽略规则粘贴进去并保存:
1 | # 忽略 Node.js 依赖库(绝对不能上传,云端构建会自动下载) |
保存后,Git 就会自动把上面写的所有文件夹和文件拉入“白名单外”,后续任何的 git add . 或提交命令都会自动彻底跳过它们。
第三步:GitHub Actions
1:在源码中创建自动化脚本
- 在你本地的 Hexo 博客根目录下,创建一串连续的文件夹,路径为:
.github/workflows/ - 在该文件夹下新建一个文件,起名为 **
deploy.yml**。 - 用编辑器打开它,将以下标准的 Hexo 编译生成脚本粘贴进去:
github下面的自动编译脚本代码
1 | name: Hexo Deploy Bot |
2:给予 GitHub 脚本“写入权限”
默认情况下,GitHub 的 Actions 机器人只有读取权限,没有权限把你编译好的 public 重新塞回你的仓库分支里。我们需要去后台开启它:
- 打开你的 GitHub 博客仓库页面。
- 点击顶部的 Settings(设置)。
- 在左侧菜单栏中,找到 Actions -> 点击 General。
- 滚动到页面底部,找到 Workflow permissions(工作流权限):
- 将默认的 Read repository contents and packages permissions * 修改切换为:**
Read and write permissions(读写权限)**。
- 将默认的 Read repository contents and packages permissions * 修改切换为:**
- 点击 Save 保存。
3:提交并触发第一次自动编译
在本地终端(Terminal)运行命令,将这个新做的 .github/workflows/deploy.yml 及全量本地文件推送到 GitHub 上:
1 | # 1. 初始化本地 Git 仓库(如果之前从来没有初始化过的话) |
🎯 成果验证与后续使用
当你完成这一步后,你可以立刻在浏览器中打开你的 GitHub 仓库,点击顶部的 Actions 选项卡。
你会发现有一个叫 Hexo Deploy Bot 的任务正在转圈跑马灯。当它变成绿色勾勾 $\checkmark$ 时,说明它已经在后台帮你完成了以下事情:
- 打开你仓库的分支列表,你会惊喜地发现除了
main之外,自动多出了一个gh-pages分支。 - 切换到
gh-pages分支,里面没有任何的source、themes或yml配置文件,全部都是纯粹编译出来的index.html、css、js等public核心文件。