以前我对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