基于Gridea + GitHub Pages搭建静态博客
热度: loading...
也就是我的建站过程了
另:求求官方增加GitHub的ssh通讯了
写在开头
Gridea还很年轻,目前才0.9.2,有官方文档,文档尾部附有b站视频,可以先看看官方教程再看这里,本文档适合新手及爱折腾的人。
全文的Branch(分支名),remote(远程仓库名),都可自行命名,但是记得要前后一致!!
前提
拥有GitHub账号。点此注册,以有账号请直接登录。请新人注册GitHub账号名称正式点,这很可能成为你的网站域名,除非你额外花钱买域名托管你的GitHub Pages。
要下载的软件
Gridea github下载地址
、国内 Gitee 下载地址
,选择对应你的电脑系统安装即可。
git Windows下载
、Linux/Unix下载
、Mac下载
git在0.9.2成为非必须,但是建议安装,因为现在推送你的文件到GitHub仍是通过https,而GitHub的连接很不稳定,建议通过git,通过ssh直接推送(不受墙的影响),如果是程序员那早晚会用到的。
git的命令行版可能对新手不友好,但是命令也不会很多用到,实在不行就试试用图形界面的Gitkraken,或者直接在浏览器上传文件吧
建议下载翻墙软件,GitHub的软件有很多不错的,而且对你能登上GitHub注册账号也很重要,如Lantern,虽然是在GitHub上但应该能连上
GitHub Pages设置
Github Pages分类
创建新仓库
点击GitHub主页左上方的新建一个仓库,迷路的👉New
仓库名称为用户名.github.io
。此处用户名即为GitHub用户名这是规定(个人/企业项目)使用GitHub Pages的仓库名称,因为我已经创建过所以报错,下面选项随意,可不选
在仓库设置勾选GitHub Pages
应该是默认设置好了的,不放心的可以去看看设置,见图,记得要做图2的第二步!!!这是设置要从哪里作为你的主页读取文件位置,之后上传一定要记得按照你的设置来
配置Gridea密钥
点击GitHub页面右上角头像找到settings,在靠左边位置找到Developer settings,再选择Personal access tokens。迷路点此👈
在此设置页找到Generate new token
这里的note是密钥名称,随意起,前提你知道这个密钥是给谁用的,过期时间可以选永久,但GitHub并不建议,所以要记得续一下这个密钥(如果有天gridea远程连接失败就检查一下吧),下面勾上repo
允许访问你的仓库即可,创建按钮在页面末尾处,成功创建后会有一串密钥,请及时复制保存,只显示一次!!!
托管你的域名(可选)
如果你有钱,想让多点人看到你的博客,记住你的地址,可以选择买个顶级域名,然后托管这个二级域名,由于我不想花钱买域名,就不 做演示,自行百度GitHub Pages自定义域名或参考单个GitHub帐号下添加多个GitHub Pages
配置Gridea
找到远程这一选项,这里建议域名为用户名.github.io
,仓库为用户名.github.io
,分支自行选择之前定义的分支,不懂直接写master,用户名,邮箱如实填写,令牌即刚刚复制的密钥,如果要参考我下图的设置请看后面
点击检测远程连接看看有无问题,但这只是一个基本检测,见issue #896,点击旁边的同步,Gridea就基本设置完了。如果同步失败不要慌,如开头所说原因,这里我们直接祭出git
同步失败解决办法
由于众所周知原因,官方在试行内置代理issues#890,但我个人倾向使用ssh这种无需代理的方式
请先配置ssh连接GitHub
请直接参考ssh配置官方文档,这里只提下想自动启用ssh代理的话复制官方的代码,然后在C:\User\用户名
下新建文档,粘贴进去,保存退出,重命名整个文件为.profile
或.bashrc
,这个文件为Windows系统没有的,是在Linux中起作用的,git启动才调用。官方文档中只需要输入在行首带有$的命令,下同
手动上传至GitHub
点击同步后Windows中Gridea会默认输出文件到C:\User\用户名\Documents\Gridea\output,也可以点击资源管理器快速访问的文档/库里的文档
文件夹
这个在Gridea设置(设置按钮是左下角第一个)里可以变更位置,也可以看到源文件储存位置,旁边的文件夹图标是更改保存位置,这时必需重新回到远程设置配置
进入output文件夹,请打开资源管理器查看隐藏文件,会看到.git
这个文件夹,直接删掉
右键选择Git Bash here,初次使用请配置git,更多请参阅git中文说明文档
$ git init
$ git add -A # 添加目录下所有文件到待提交
$ git commit -m"creat my blog" # 引号里为提交信息(必填!不能用空格代替!)
# 也可以只写git commit,会打开安装时选择的默认编辑器打开输入提交信息
$ git branch -M master # 创建master分支,有需要自行替换
$ git remote add origin git@github.com:name/name.github.io.git #把name替换为GitHub用户名
# 这里的origin可以自定义为别的名字,只要确认以后记得
$ git push origin master
更新博客
同样先在Gridea点击同步,不用管提示同步失败,然后找到output文件夹执行以下命令:
$ git add -A
$ git commit -m"update blog"
$ git push origin master
不想用Git的请手动上传output文件夹内除.git
文件夹的所有内容,期间最好开启代理
使用Gitkraken的可以参考视频,Gitkraken会直接安装在用户文件夹中,安装过程无选项,在开始菜单有快捷方式,也可以手动找C:\User\用户名\AppData\Local\gitkraken
,打开update.exe
即可。虽然有图形界面很好,但问题是我感觉不如我输命令直接点,请自行摸索
确认是否已经成功
稍微等待一会,然后在浏览器输入https://name.github.io,请把name换成GitHub用户名,刷新出网页就是成功了
想折腾的继续看
如果想把个人项目主页设成简介页,导航页之类的继续往下看。以下以blog举例,可参考自行替换名字
建议不要直接在output文件夹操作,容易报错,复制多一份虽然繁琐但是有效。顺便一提把output内.git
删除就会提示同步成功,但是并不会更改你的GitHub上仓库内容。
方法1
可以直接在这个仓库下面新建文件夹,会自动指向主页下的子域名,比如我在仓库下建了blog文件夹,那对应域名即为https://sjh0020.github.io/blog,同时要记得更改Gridea远程设置,只用改域名,这个和文章跳转相关,一定要改!不然网页不能正常加载!!还要确认一下标签是否跳转正常,不确定的全部在标签开头加上/blog
即为主域名下的blog文件夹,要导航到主页面的只用填/
即可
用git推送
这种方法会稍微麻烦点,建议在C盘外找个地方用git克隆你的仓库或直接把output文件夹内容拷贝都一个地方,然后在拷贝后目录下新建一个blog
文件夹或者你想要的子域名,把目录下除.git
所有文件拖如blog
文件夹,在有.git
的目录中右键出git,执行:
$ git clone git@github.com:sjh0020/sjh0020.github.io.git
#克隆命令,自动在git当前工作目录生成`sjh0020.github.io`文件夹
#如果用该命令克隆仓库,默认的origin就是使用ssh的
# 如果是 git clone https://github.com/sjh0020/sjh0020.github.io
# 那这里的origin为https,而不是ssh的方式,要重新新建一个remote
$ git add -A
$ git commit -m"move to blog"
$ git push origin master
如果一开始就想用blog而没有经过之前的提交到GitHub
那请找个不需要管理员权限的目录新建文件夹,再次在该新建文件夹中新建blog
文件夹,在该新建文件夹打开git,执行提交到GitHub的命令
请记住要更新博客请先把output文件夹内容复制到blog
文件夹内然后在blog的上级目录(即有.git
文件夹的目录)执行上一步的命令
方法2
新建一个仓库,然后在仓库设置打开pages,就与直接在sjh0020.github.io仓库内建blog一样效果,
但是可以把提交的历史单独出来,而不会记录到sjh0020.github.io的提交历史中,方便管理
Gridea的远程配置如之前的图
把output文件夹内容除.git
复制到非管理员权限的空文件夹,在文件夹中右键打开Git,执行:
$ git init
$ git add -A
$ git commit -m"creat blog files"
$ git branch -M master
$ git remote add origin git@github.com:sjh0020/blog.git
$ git push origin master
更新博客请先Gridea点击同步后打开output,复制到备份文件夹后在Git执行更新命令
FAQ
图床
文档参考
Gridea官方快速入门
Gridea官方FAQ
基于Gridea+github/coding搭建静态博客
ssh配置官方文档
git中文说明文档
issue #896
issues#890