之前通过本地生成public远程到gh-pages分支,都是在pc端编辑并部署,但随时需要手机编辑时,就像pc端一样就比较麻烦。

实现手机编辑并推送,同时电脑端也可以,建立两个仓库soure和static,配置github ations实现自动构建并部署,在source仓库下新建 .github/workflows/deploy.yml。其内容放在了source仓库根下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
git remote -v # 查看当前远程他说配置,如果不是源仓库则更改

git remote set-url origin https://github.com/xxxx/xxxx_source.git

#如果要设置双远端,手机可以推送并部署,电脑也可以用之前方式部署
git remote set-url origin https://github.com/xxx/xxx_source.git
git remote add deploy git@github.com:xxxx/xxx.static.git



# 上传源码
git add .
git commit -m "上传 Hexo 源码到 xxx_source"
git push -u origin main

# 如果main 分支不存在,则切换
git branch -M main
git push -u origin main


.gitignore文件设置忽略跟踪的文件,git ls-files查看跟踪的文件。

github pages 不支持直接从私有仓库发布。

仓库需要认证,在source仓库下,

1
Settings -> Secrets and variables -> Actions -> New repository secret

添加一个名为 PERSONAL_TOKEN 的 secret,值是Personal access token,在Develop Settings中设置,可以是:

  • Fine-grained tokens
  • Tokens(classic)

要给权限:repo, workflow

“Actions permissions” 是 GitHub 仓库中的一项安全设置,用来控制 GitHub Actions(工作流脚本)是否有权限访问你的仓库,尤其是用于部署、发布、拉取或推送操作。

  1. Read repository contents permission
  2. Read and write permissions

对action操作的源码仓库要设置以上权限。

测试过程中查看action log,如果出现以下错误:

1
2
fatal: No url found for submodule path 'themes/xxx' in .gitmodules
The process '/usr/bin/git' failed with exit code 128

设置好权限密钥,处理好git 子模块引发的github actions构建失败问题.。作为普通文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 从 Git 缓存中移除子模块引用
git rm --cached themes/xxx

# 删除子模块的内部记录
rm -rf .git/modules/themes/xxx
rm -f .gitmodules

# 可删除主题目录重新远程下载
rm -rf themes/xxxx

# 重新添加并提交
git add .
git commit -m "fix: remove submodule and ..."
git push origin main

如果作为子模块,就需要更改action file,啊麻烦😡 不想研究了……

如果远程仓库进行了更改,而本地没更改就无法推送成功,这时候可以合并远程并推送

1
2
git pull --rebase origin main
git push origin main