很多開源項目托管平臺都支持為托管的項目建立主頁鸵鸥,但主頁的維護(hù)方式都沒有GitHub這么酷。大多數(shù)托管平臺無非是開放一個FTP或類似服務(wù)舆绎,用戶把制作好的網(wǎng)頁或腳本上傳了事星立,而在GitHub用戶通過創(chuàng)建特殊名稱的Git版本庫或在Git庫中建立特別的分支實(shí)現(xiàn)對主頁的維護(hù)。
創(chuàng)建個人主頁
GitHub 為每一個用戶分配了一個二級域名<user-id>.github.io,用戶為自己的二級域名創(chuàng)建主頁很容易灾锯,只要在托管空間下創(chuàng)建一個名為<user-id>.github.io 的版本庫兢榨,向其master分支提交網(wǎng)站靜態(tài)頁面即可,其中網(wǎng)站首頁為index.html顺饮。下面以gotgithub用戶為例介紹如何創(chuàng)建個人主頁吵聪。
- 用戶gotgithub創(chuàng)建一個名為gotgithub.github.io的Git版本庫。
- 在本地克隆新建立的版本庫兼雄。
$ git clone git@github.com:gotgithub/gotgithub.github.io.git
$ cd gotgithub.github.io/
- 在版本庫根目錄中創(chuàng)建文件index.html作為首頁吟逝。
$ printf "<h1>GotGitHub's HomePage</h1>It works.\n" > index.html
- 建立提交。
$ git add index.html
$ git commit -m "Homepage test version."
- 推送到GitHub赦肋,完成遠(yuǎn)程版本庫創(chuàng)建块攒。
$ git push origin master
訪問網(wǎng)址: http://gotgithub.github.io/ 最多等待10分鐘,GitHub就可以完成新網(wǎng)站的部署佃乘。網(wǎng)站完成部署后版本庫的所有者會收到郵件通知囱井。還有要注意訪問用戶二級域名的主頁要使用HTTP協(xié)議非HTTPS協(xié)議。
創(chuàng)建項目主頁
如前所述恕稠,GitHub會為每個賬號分配一個二級域名<user-id>.github.io作為用戶的首頁地址琅绅。實(shí)際上還可以為每個項目設(shè)置主頁,項目主頁也通過此二級域名進(jìn)行訪問鹅巍。例如gotgithub用戶創(chuàng)建的helloworld項目如果啟用了項目主頁千扶,則可通過網(wǎng)址http://gotgithub.github.io/helloworld/ 訪問。
為項目啟用項目主頁很簡單骆捧,只需要在項目版本庫中創(chuàng)建一個名為gh-pages的分支澎羞,并向其中添加靜態(tài)網(wǎng)頁即可。也就是說如果項目的Git版本庫中包含了名為gh-pages分支的話敛苇,則表明該項目提供靜態(tài)網(wǎng)頁構(gòu)成的主頁妆绞,可以通過網(wǎng)址http://<user-id>.github.io/<project-name>訪問到。
下面以用戶gotgithub的項目helloworld為例枫攀,介紹如何維護(hù)項目主頁括饶。
如果本地尚未從GitHub克隆helloworld版本庫,執(zhí)行如下命令来涨。
$ git clone git@github.com:gotgithub/helloworld.git
$ cd helloworld
當(dāng)前版本庫只有一個名為master的分支图焰,如果直接從master分支創(chuàng)建gh-pages分支操作非常簡單,但是作為保存網(wǎng)頁的gh-pages分支中的內(nèi)容和master分支中的可能完全不同蹦掐。如果不希望gh-pages分支繼承master分支的歷史和文件技羔,即想要創(chuàng)建一個干凈的gh-pages分支僵闯,需要一點(diǎn)小技巧。
- 基于master分支建立分支gh-pages藤滥。
$ git checkout -b gh-pages
- 刪除暫存區(qū)文件鳖粟,即相當(dāng)于清空暫存區(qū)。
$ rm .git/index
- 創(chuàng)建項目首頁index.html拙绊。
$ printf "hello world.\n" > index.html
- 添加文件index.html到暫存區(qū)向图。
$ git add index.html
- 用Git底層命令創(chuàng)建新的根提交,并將分支gh-pages重置标沪。
$ git reset --hard $(echo "branch gh-pages init." | git commit-tree $(git write-tree))
- 執(zhí)行推送命令张漂,在GitHub遠(yuǎn)程版本庫創(chuàng)建分支gh-pages。
$ git push -u origin gh-pages
無論哪種方法谨娜,一旦在GitHub遠(yuǎn)程版本庫中創(chuàng)建分支gh-pages,項目的主頁就已經(jīng)建立磺陡。稍后(不超過10分鐘)趴梢,用瀏覽器訪問下面的地址即可看到剛剛提交的項目首頁: http://gotgithub.github.io/helloworld/ 。