Github

簡單使用github.io與gh-pages分支功能來架設靜態網頁

本文紀錄架設靜態網站時遇到的種種問題,分成github.io跟gh-pages兩大部份

使用github.io架設靜態網站

1.github.io專案

在github建立github new repository,命名必為 [github帳號名].github.io,比如xxxxx.github.io(本文皆用此例說明)

分歧點:自己的網頁與Github Pages site theme

2.1自己的網頁

若是已經有自己寫好的靜態網頁(含html、css、js等檔案),可直接按照git的流程將其上傳至步驟1專案的github,上傳成功後到 https://xxxxx.github.io/ 查看網站,一個靜態網頁就架好了!

2.2 Github Pages theme

xxxxx.github.io 專案頁面下選擇Setting -> Github Pages -> Choose a theme ->Jekyll theme (見圖1),選好後就能到 https://xxxxx.github.io/ 查看網站,網站也架好了!此時index.md內容可以自己改成履歷或其他~

參考資料1有手把手圖文教學

基本上兩個步驟就能架設好一個非常簡單的網站了~完成後回到 xxxxx.github.io頁面,右欄最下面會出現Environments-> github-pages (Active)

Github Pages site 的Theme可以隨便選嗎?

可以,主題隨便選都是 Jekyll theme,但注意會覆蓋整個Github Pages site,如下圖介紹

因此在Setting -> Github Pages -> Theme Chooser 會顯示出選擇的主題是Jekyll theme

因此在網頁中css顯現不出來只有文字和連結Orz…在chrome按F12使用開發者工具查看,出現滿滿的failed to load resource the server responded with a status of 404 () ……

解決辦法是在自己寫的html資料夾中建立一個.nojekyll的空文件(參考資料4),然後一起push到xxxxx.github.io

使用gh-pages分支功能架設靜態網站

1.github一般專案

在github建立new repository,當一般專案命名(例如projectA),git clone到本地端後放入html檔,進行git add –all、git commit -m”message”

2. gh-pages branch

建立 gh-pages branch,輸入以下指令

git checkout -b gh-pages # 建立gh-pages branch並切換過去

上面的單行指令相當於

git branch gh-pages # 建立gh-pages branch
git checkout gh-pages # 切換到gh-pages branch

接下來輸入以下指令

git push --set-upstream origin gh-pages 

確認github上的projectA更新後,進入到https://xxxxx.github.io/projectA,這樣就透過gh-pages完成了一個與xxxxx.github.io專案分開的網站了~

這邊可以看參考資料2(簡單的gh-pages 使用流程)、參考資料3(詳細介紹gh-pages與實作)

–set-upstream 使用場景

projectA在建立時使用的通常是master branch,因此新建立的gh-pages branch 跟無法直接跟projectA產生對應關係,也就不能直接用git push推檔案上github,在git push後面才要加上–set-upstream 將gh-pages branch 註冊進 .git\config 設定檔,如此一來本次的變更會合併到gh-pages branch,推送到預設origin的github遠端資料庫。建立新分支時第一次推時使用–set-upstream 或 -u 就好,之後會跟原專案的master branch一樣可以使用git push。(參考資料5)

為何使用gh-pages?

xxxxx.github.io專案的index.html通常當主頁,但若日後放在其之下的網頁專案數量越來越多,會造成管理的麻煩,因此可利用gh-pages分支功能讓網頁專案能分開管理。

結語

github.io只能放靜態網頁,但拿來放履歷跟作品集綽綽有餘,Github本身又有強大的版控功能,果然是工程師的最佳夥伴~

參考資料

1.不用懂git也能用GitHub Pages架設靜態網站並綁定網域

2.從零開始: 用github pages 上傳靜態網站

3.善用gh-pages分支功能 無料架設靜態網站

4.Including node_modules And vendors Folders In Your GitHub Pages Site

5.30 天精通 Git 版本控管 (25):使用 GitHub 遠端儲存庫 – 觀念篇