Hexo托管到GitHub全过程并自定义域名访问
这两天接了不少单子,其中有很多乱七八糟的问题,索性写一篇全过程
以下配置过程均在butterfly主题上安装,其他主题可能略有不同,默认已经注册过github账号,且下文中your-name为你的github昵称,your-email为注册时的邮箱
配置git与github关联
设置邮箱和用户名
输入以下命令
git config --global user.name "your-name" |
下面这一行设置可以增强输出命令的可读性
git config --global color.ui auto |
用ssh生成密钥对
输入:
ssh-keygen -t rsa -C "your-email" |
如果没有特殊要求一路回车就行,Windows系统默认在 C:\User\xxx.ssh\ 文件夹下,Linux系统默认在 /root/.ssh/ 文件夹下
将公钥添加到github中
打开上述文件夹下,找到 id_rsa.pub 文件用文本编辑器(Windows用记事本,Linux用cat命令等)打开,复制其中所有内容
登录github账号,点击头像旁的小三角展开,点击settings-SSH and GPG keys-New SSH key,在Title中取一个名字(任意),key中粘贴你刚刚复制的内容。然后点击Add SSH key即可
测试是否关联成功
输入:
ssh -T git@github.com |
出现以下结果即为成功:
Hi xxx, You've successfully authenticated, but GitHub does not provide shell access. |
如果出现以下结果
git@github.com: Permission denied (publickey). |
首先查看 .ssh 文件夹是否具有777权限,如果没有就执行如下命令:
chmod 777 .ssh #前提是你的bash在.ssh文件夹的父目录 |
再次执行
ssh -T git@github.com |
如果还有如上报错,那么问题大概率就定位在了你本机的这个git仓库并没有和这个SSH key 关联上,用下述方法解决:
ssh-add "path-to-id_rsa" |
若执行ssh-add /path出现这个错误: Could not open a connection to your authentication agent,则先执行如下命令即可:
ssh-agent bash |
若出现以下报错
fatal: not a repository (or any of the parent directories): git |
可以执行如下命令
git init |
如果出现以下报错
fatal: bad numeric config value 'auto' for 'core.autocrlf' |
则执行如下命令
git config --global --replace-all core.autocrlf false |
然后执行git init即可
创建仓库
打开github主页,点击左侧new按钮,Repository name中填入你想取的名字,记得勾选public,没有特殊要求即可点击下方Create repository

Hexo内部修改
安装插件
hexo上传代码需要插件支持,执行以下代码即可安装插件包
npm install hexo-deployer-git --save |
安装完即可使用git
修改配置文件
打开_config.yml配置文件,修改deploy内容为如下图所示

注意空格和缩进,repo后要写上github或者其他,其中branch的内容有可能为master或者gh-pages,按照自己的情况填写即可
完成配置
到现在为止已经完成配置工作了,使用以下代码生成并上传文章
hexo g && hexo d |
github更新速度较慢,大概两三分钟左右,之后打开你的仓库,点击setting-pages,在branch栏能看到你的主分支叫什么,如果和你的配置文件不符则需要修改你的配置文件重新上传,如果没有问题则可以点击上方visit site查看你的网站,自此部署完毕
自定义域名访问
首先你需要买一个域名,各大域名商都可以,然后在hexo目录内的source文件夹下生成一个名为 CNAME 的文件,文本编辑器打开它,填写你的域名,然后重新上传代码
打开你的github仓库,点击setting-pages,下边有个custom domain,将你的域名填入其中并点击save,稍等几分钟即可使用域名访问,如果使用子域名访问网站可能需要在域名商后台添加cname记录,这里暂时不表
至此所有配置过程全部结束,有新的问题我会继续更新本文章

