將生編寫好的格式為.md的文件通過Gitbook處理,然后再發布到Github Gages上去。我個人比較喜歡將源碼,即`.md`文件與Github Pages靜態文件存放在一個倉庫中。`.md`文件為`master`分支,而hmtl文件為`gh-pages`分支。具體流程是這樣的:
## 創建倉庫與分支
* 登錄到Github,創建一個新的倉庫,名稱我們就命令為`book`,這樣我就就得到了一個`book`的空倉庫。
* 克隆倉庫到本地:`git clone git@github.com:USER_NAME/book.git`。
* 創建一個新分支:`git checkout -b gh-pages`,注意,分支名必須為`gh-pages`。
* 將分支push到倉庫:`git push -u origin gh-pages`。
* 切換到主分支:?`git checkout master`。
經過這一步處理,我們已經創建好`gh-pages`分支了,有了這個分支,Github會自動為你分配一個訪問網址:
> [http://USERNAME.github.io/book](http://username.github.io/book)
你可以在項目頁面右下`settings`中看到:

當然,由于我們內容還沒有上傳所以你點開鏈接,也只是一個404頁面。
## 同步靜態網站代碼到分支
下面我們就可以將build好的靜態網站代碼同步到`gh-pages`分支中去了:
* 切換出master分支目錄。我們需要將`gh-pages`分支內容存放到另一個目錄中去。
* 克隆`gh-pages`分支:`git clone -b gh-pages git@github.com:USERNAME/book.git book-end`。這步我們只克隆了`gh-pages`分支,并存放在一個新的目錄`book-end`里面。
* Copy靜態多站代碼到`book-end`目錄中。
* Push到倉庫。
然后,等十來分鐘的樣子,你就可以訪問到你的在線圖書了。而后,每次修改之后,都可以將生成的代碼Copy到`book-end`目錄,再Push一下就OK了。
當然,對于`gh-pages`存放問題,你也可以直接在master分支目錄中直接`git clone`?gh-pages分支,假如名稱為`book-end`,然后修改一下`.gitignore`文件,將`book-end/`添加進去,這樣主分支就不會理會`book-end`內容的修改了。
筆者曾試過直接使用`gitbook build --output=/PATH/book-end`這個方式輸出到`gh-pages`分支目錄中,但發現gitbook在build的時候,相當于刪除存在的這個目錄,然后再新建目錄,再寫入內容,原來的git信息會完全刪除掉,顯示這不是我們想要看到的,所以只能Copy才行。