以前我對github的pages服務的使用一直只停留在創建博客而已,最近整理了上面的幾個repo才使用了其創建項目主頁功能。整體來說仍是很方便的,各位看看官方文檔便可大體瞭解。而接下來我再說說期間遇到的一些問題和解決:git
首先github的pages服務給每一個用戶只分配了一個域名username.github.io
;你也能夠添加CNAME記錄使其指向你本身其餘域名,pages服務會爲你自動跳轉。而每一個項目的gh-pages
分支下其項目主頁默認卻只是<username>.github.io/<projectname>
或CNAME記錄指向的其餘域名/<projectname>
,就不能再本身設置域名了。因此這裏千萬要注意用戶域名username.github.io
的CNAME記錄別跳到別的站上去,不然不能訪問到各個項目的gh-pages
分支。github
因爲我博客使用雙repo同時在github和gitcafe上部署,爲保證國內訪問,levonlin.github.io
的CNAME中,域名levonlin.info的CNAME記錄值被我設爲gitcafe.io,結果就致使創建的項目主頁一直404。若是你和我同樣的狀況,那要麼刪除username.github.io
的CNAME,要麼保證CNAME指向的域名不會跳到別的站上,這樣才能愉快地使用pages服務。fetch
這就得理解git的工做原理了,local repo和remote repo上兩個分支得如今有或者merge之前有相同的"base"才能用push實現local repo上branch的上傳,以下圖:spa
在github建立gh-pages後,因爲clone到local repo上的只有master分支,而master分支與gh-pages分支的初始狀態並不一樣步。能夠先fetch一次gh-pages再checkout到它上面commit,就能實現正常push:3d
此外若是你在本地自建了gh-pages分支,則要再checkout到它上面pull後commit,即可以push啦:code