搭建hexo博客记录
前期工作
环境安装
可在git bash里执行mkdir blog
或者直接图形界面创建博客文件存放目录
进入该目录,按住shift键点击鼠标右键,在当前位置打开命令窗口,或者鼠标右键后选择git bash here,输入下列命令
npm install -g hexo-cli
npm install -g hexo --save
在这一步后,当前目录即有了hexo环境,继续操作
hexo init
npm install
这里安装大量hexo插件,请不要忘记执行上面第二个命令,否则后续很多操作不能执行
git和ssh配置
在git bash 窗口执行
ssh-keygen -C 'EMAIL' -t rsa
将上面EMAIL替换为你的git想要使用的邮件地址. 测试key可以使用
ssh -T git@github.com
如果正常,将返回 > Hi grunmin! You’ve successfully authenticated, but GitHub does not provide shell access.
继续执行下列命令定义git变量
git config --global user.name 'USERNAME'
git config --global user.email 'EMAIL'
同样的,EMAIL和USERNAME需要自己替换
gitcafe的操作
注册gitcafe账户后,添加ssh-key. key的位置在C盘用户目录下的.ssh目录,通常是id_rsa.pub 新建gitcafe账户同名项目,根据创建成功页面的提示,因为本地已有git仓库.直接在blog目录
git init
git remote add origin 'GITREPO'
git add .
git commit -m 'init'
git push -u origin master
*GITREPO*为项目git仓库地址,形如git@gitcafe.com:grunmin/grunmin.git 在本地创建gitcafe-pages分支,并切换到该分支,推送
git checkout -b gitcafe-pages
git push origin gitcafe-pages
再次切换回master分支
git checkout master
修改blog目录下的_config.yml文件,找到这行代码,修改如下
deploy:
type: git
repo:
gitcafe: git@gitcafe.com:grunmin/grunmin.git
hexo生成静态文件,推送到gitcafe中
hexo d -g
成功后即可访问USERNAME.gitcafe.io 之后所有的操作都在master分支里
github的操作
tonggitcafe,注册账户,添加ssh-key 新建一个仓库,命名为USERNAME.github.com 在_config.yml文件刚才修改的地方,再次添加一行记录,结果如下:
deploy:
type: git
repo:
gitcafe: git@gitcafe.com:grunmin/grunmin.git
github: git@github.com:grunmin/grunmin.github.com.git
再次执行hexo的推送命令即可将博文内容推送到两个仓库中. 现在即可访问USERNAME.github.io
问题记录
推送github失败
在成功推送gitcafe后,我尝试了上述的双线推送,每次推送github都失败.提示消息是请检查是否有权限进行操作.
我的解决办法是新建一个仓库,然后关联到本地仓库,进行导入key之后的第一次push操作.操作成功之后,再次执行hexo推送,这次成功了.
具体原因不明,猜测与github的安全机制有关.
首先执行ssh -T git@github.com
测试key是否正常,如果是从其他地方拷贝到key,注意存放的位置和文件名,注意公钥对加密内容是不换行的。
deploy之前请先修改文件并generate,否则github.com可能会拒绝连接