这两天接了不少单子,其中有很多乱七八糟的问题,索性写一篇全过程

以下配置过程均在butterfly主题上安装,其他主题可能略有不同,默认已经注册过github账号,且下文中your-name为你的github昵称,your-email为注册时的邮箱

配置git与github关联

设置邮箱和用户名

输入以下命令

git config --global user.name "your-name"
git config --global user.email "your-email"

下面这一行设置可以增强输出命令的可读性

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记录,这里暂时不表

至此所有配置过程全部结束,有新的问题我会继续更新本文章