在Github上搭建你的博客

title: blog on github
date: 2014-03-24 20:29:47
tags: [blog,github,hexo]
---


**用Github写博文**
参考http://ibruce.info/2013/11/22/hexo-your-blog/
非常详细哟!你可以先看看他的文章

##主要步骤
首先你得拥有github账号 然后创建一个仓库 仓库里面才能发页面文件什么的
然后往这个仓库中添加html文件 这个html文件就是你的博客 你可以尽情的使用你喜欢的样式 不受限制
基本上是这么个意思 听起来很简单啊 那我们要hexo做什么 有了这个Git客户端有什么用?
毕竟你想想嘛 我要是有很多博文 每个html都要写目录啊 其他博文的链接啊 真麻烦
所以我需要一个系统 他能帮你做目录啊 统计博文数量啊 设置主题啊 生成HTML等等 Hexo就是来做这个的
Git呢? 有了Git客户端 可以更方便的同步本地和线上仓库

##为什么选择Github?
首先 拥有一个个人独立博客首要就是租一个空间 买一个域名什么的
哎呀 木有钱啊 免费的服务好像都不可靠 付费的真心超过预算… 突然发现github上可以
我想github的初衷是用来展示作品的 因此它为每个用户分配了一个可以设定域名的空间 当然就可以写博客啦!
当然了 你也可以选择BAE 更稳定不是嘛(有时间再来研究下)

##创建仓库Repository
如何设置你的域名?得到域名首先要创建repository
创建新仓库记住要勾选Initialize this repository with a README 否则空仓库不会有填入域名的框
要是已经生成了一个空仓库呢?(使用那个绿色 Set up in a desktop 表示使用Git客户端来操作)
使用Git客户端对你新建的仓库init一下并上传一个文件后 就又可以在页面上看到填入域名的地方啦
域名格式(二级域名) http://??????????.github.com

##Git客户端
对于win 我一开始是按照ibruce的教程来的 使用的是msysgit 它是github
对于mac 就用的Github上官方的那个 http://mac.github.com/
新手的话还是使用官方的这个客户端好了 傻瓜操作…

##Git命令
和SVN一个逻辑 本地得有一个仓库 测试好了后再通过Git客户端传到线上
你可以随便选一个文件夹作为仓库
对于win 进入到仓库文件夹中右键选择Git init 但是这种方式如果换了一个客户端可能就不通用了
所以我还是说说通用的方式 使用Git命令
打开Git Bash (Github for mac在安装的时候就有提示是否安装command tools 选择上就好)
PS: 这个command tools会在/usr/local/bin中 其中会有个git文件 点击它会编译一下
初次编译会向你请求安装Xcode 根据提示操作 很快就装好了 (应该是一个Xcode的shell编译器吧 不是整个Xcode)
然后就可以在terminal中使用git命令了
cd到相应的目录

    git init

该命令可以将当前文件夹作为仓库文件夹 之后会生成一个.git的隐藏文件夹

##命令行基本操作
好久不用 又忘了?
进入C盘 `cd C`
然后进入某个目录 `cd xxx\`
进入多级目录必须一层一层的进入
像这样一次进入多层是不行的

    rakus@RAKUS-PC /C
    $ cd Users\rakus 
    sh.exe": cd: Usersrakus: No such file or directory

必须这样

    rakus@RAKUS-PC /C
    $ cd Users

    rakus@RAKUS-PC /C/Users
    $ cd rakus

退回到上一层 (`cd ..`) (注意cd后面有个空格)

##Git客户端连接配置
Git的客户端和Git账号连接 哇 这还要说?不仅仅是填写用户名和密码这么简单哟!
为了保证安全性 本地仓库和线上仓库是通过SSH连接的
如果你是使用的Github官方上得客户端的话 填好用户名和密码就会自动帮你创建好SSH key并且将key添加到你的账户中
至少我使用Github for mac是这样 所以我猜Github for windows也应该如此
这里还是说最通用的办法 比如你是linux用户呢 呵呵
打开Bash

首先设置账户

    $ git config --global user.email "lumixraku@gmail.com" 
    $ git config --global user.name "lumixraku"

生成SSH key

    $ ssh-keygen -t rsa -C "lumixraku@gmail.com"

接下来会看到提示

    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/rakus/.ssh/id_rsa): 

这里面要求输入一个路径 是你保存SSH key的路径包括文件名 同时也会在()中得那个路径中生成id_rsa的
注意保存的保存的文件名也得是id_rsa 否则.ssh中不会自动生成id_rsa的 实际上Git客户端用的是.ssh中的文件中得SSH密钥
我保存在G盘

    Enter file in which to save the key (/c/Users/rakus/.ssh/id_rsa): G:\Git\git\id_rsa

回车后看到Ok的信息

    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again:
    Your identification has been saved in G:\Git\git\id_rsa.
    Your public key has been saved in G:\Git\git\id_rsa.pub.
    The key fingerprint is:
    69:14:??:??:??:??:??:??:ed:63:??:da:??:??:??:?? lumixraku@gmail.com

我把我的密钥隐藏了 当然实际上这里不会是问号啦
这个密钥和PC是对应的 一个PC是唯一的一个密钥
至此已经生成了SSH 将会在刚才的指定路径G:\Git\git\中生成一个id_rsa文件和id_rsa.pub文件
所需要的SSH key就是id_rsa.pub文件的内容
PS:Github for mac会自动连上Github且自动生成好SSH key 安装上Github for mac后会默认在你的用户名的文件夹中生成.ssh文件夹 不过点开后里面并没有id_rsa…可能自动连上后删去了..可能
然后去Github中+号旁边的螺丝刀和扳手图标Account Settings中添加 SSH key
Key名字是随意填写的 最好填计算机名 这样有多个key的时候好区分 Key的内容就是pub文件中的内容 复制出来粘贴就好
接下来做一个测试 看看Git客户端能否连上Github

    ssh -T git@github.com

或者使用ssh -vT git@github.com 可以看到更详细的信息
会提示

    Warning: Permanently added the RSA host key for IP address '1??.??.???.129' to the list of known hosts.
    Hi lumixraku! You've successfully authenticated, but GitHub does not provide shell access.

##使用Git 命令上传(与本地同步)/下载(与服务器同步)文件

刚才已经提到了创建并init仓库 现在就cd到这个文件夹
上传就是把本地仓库中的文件上传到线上仓库 一个账户一般都不会只有一个仓库 所以上传前首先要指定好仓库

    git remote add repo git@github.com:lumixraku/repo.git

后面git@github.com:lumixraku/repo.git这么一串就是仓库的地址 在每个仓库的右边栏下方可以看到
这里的repo是自己为仓库取得一个别名 不会影响到线上的仓库 只是本地用户指定仓库时方便 这个信息保存在.git中
当你删除.git后再想使用这个别名是无效的 同样 当你已经使用本别名指定一个仓库 再次输入这个命令也是不可以的
提示remote rakusCode already exists 假如我忘了别名?git remote -v 显示所有repository和别名
选择好了仓库就选择文件

    git add README.md

填写备注 ‘first commit’是备注 注意!备注似乎是必填项 否则提示未填备注

    git commit -m 'first commit'

上传(与本地同步)

    git push repo master

repo是仓库别名 master则是分支 分支是一定要指定的 默认分支就是master 也就是主干
所以可以把仓库看做是一棵树 有master和其它很多branch
PS 虽然这里说的是上传 但是比如我后来又改动了aa文件夹下的bb文件 还是使用同样的命令 所以 这里的上传意义更接近于同步  所以不论你是更改的某个文件夹的中的文件还是创建了新的文件夹 
最终线上仓库在push后变得和本地一样

下载(与线上同步)

    git pull rakuscode master 

这样会一口气把全部的文件下载下来

##删除仓库
进入你要delete的repository 在右边的侧边栏中有个settings选项 进入后 底部有个danger zone 其中有Delete this repository 接下来就很容易了..

##安装Hexo
Hexo就是一个小型的博客系统(使用NodeJS实现) 并且可以将你的博客生成静态的页面 所有的链接什么都帮你设置好了
相比于WordPress不用mysql 更方便轻巧呢!
不论是win还是mac 首先安装Node (mac我用的pkg的那种 傻瓜安装) 地址http://nodejs.org/download/
安装了Node 就可以使用npm命令了 可以看到安装后在/usr/local/bin中多了一个npm
安装Hexo

    npm install -g hexo

对于mac和linux 应该使用 sudo npm install -g hexo 安装过程略长 且总是要重复几次 根据你的网络情况来定吧…
然后来到仓库文件夹作为你的hexo文件夹
初始化hexo

    hexo init

之后生成一大串文件和目录 这是hexo运行必须的东西
生成html页面

    hexo generate

启动服务

    hexo server

之后通过localhost:4000查看 运行期间 Bash不能进行其他操作 通过Ctrl+C停止服务 mac也是Ctrl
这样博客就生成了 在本地看看样式吧 生成的文件都在public文件夹中
##配置Hexo

Hexo提供了一个deploy操作 通过这个操作将生成那个好的文件提交到线上仓库去 这里不再用git的提交方式提交
打开仓库目录下的_config.yml (推荐使用sublime打开 win的默认记事本打开格式一团糟)
主要是配置仓库位置(使用了hexo后 可以用hexo deploy进行提交…不过只是提交页面 css没有被提交 这个需要手动提交一下)
大约15行位置

    url: https://github.com/lumixraku/repo 

这个url是仓库的浏览器地址
还有一个是在配置文件的最后

    deploy:
    type: github
    repository: git@github.com:yourUsername/repo.git 
    branch: master

deploy还有一个选项是指定branch的值 master或是其他branch名字
默认是gh-pages这个branch

何时使用master何时用gh-pages呢?
当仓库是主仓库(指的是分配了域名的仓库)时候就用master
然后你又创建了一个新的仓库repo2 也有一些页面文件希望被访问 此时就应该deploy到gh-pages这个分支中
repository中得git地址当然也应该是repo2的git地址
访问的时候 则是 xxxx.github.io/repo2/新仓库的页面 配置好后就能用hexo deploy提交

##写博文
新建一个博文命令

    hexo new "your Article Title"

执行上面的命令后将会在 仓库文件夹\source_posts\中创建一个文件`your-Article-Title.md`
打开此文件使用markdown的格式写博文
什么是markdown格式?参考http://ibruce.info/2013/11/26/markdown/
这种格式是一个标记语言 可以将文本转化为HTML kindle的书就是这个格式

生成页面

    hexo generate

##更换主题

Pacman和Modernist这两款不错!
Pacman主题 https://github.com/A-limon/pacman
(其中有介绍安装方式)
Modernist主题 https://github.com/heroicyang/hexo-theme-modernist

主题使用Git命令下载
比如对于Modernist主题

    git clone https://github.com/heroicyang/hexo-theme-modernist.git themes/modernist

下载了还没完 还需要配置一下
打开仓库目录下的_config.yml
这里有你很多设置 比如你的博客名字 作者 等 刚才只是改了deploy的地址
主题设置大约在83行 PS注意一下本文档的格式 在一个配置项的冒号后面有一个空格

    theme:pacman

对主题本身还可以配置一下 比如首先显示什么菜单之类
打开仓库中themes\pacman_config.yml 配置 详情可以去ibruce查看
更新主题

    cd themes/pacman
    git pull

 

posted @ 2014-03-17 19:20  cart55free99  阅读(350)  评论(0编辑  收藏  举报