🆓 完全免費
Public Repo 可免費使用 GitHub Pages,自動提供 username.github.io 網域。
GitHub 不只是放程式碼的地方——你可以用 GitHub Pages 免費部署靜態網站,用 Actions 自動化測試與部署流程,還有更多進階功能幫助你提升開發效率。
GitHub Pages 讓你直接從 GitHub Repository 部署靜態網站,完全免費。適合個人網站、專案文件、作品集與教學教材。
Public Repo 可免費使用 GitHub Pages,自動提供 username.github.io 網域。
每次 push 到指定分支,GitHub 會自動重新建置並部署你的網站。
支援自訂網域名稱(Custom Domain),並自動提供 HTTPS 憑證。
根據你的需求選擇最適合的方式。
最簡單的方式——將整個 main 分支的根目錄作為網站。
index.html。# 網站 URL 格式
https://<username>.github.io/<repo-name>/
# 範例
https://alice.github.io/my-portfolio/
適合程式碼與文件分開管理——只部署 docs/ 資料夾的內容。
my-project/
├── src/ ← 程式碼(不會被部署)
├── docs/ ← 網站內容(會被部署)
│ ├── index.html
│ ├── style.css
│ └── guide.html
├── README.md
└── package.json
docs/ 資料夾中。最靈活的方式——用 GitHub Actions 自訂建置流程。適合需要編譯的框架(如 React、Vue、Jekyll)。
.github/workflows/deploy.yml。(詳見本章後半的 Actions 段落。)
| 項目 | 限制 |
|---|---|
| Repo 大小 | 建議不超過 1 GB |
| 網站大小 | 不超過 1 GB |
| 每月流量 | 100 GB soft limit |
| 建置頻率 | 每小時最多 10 次 |
| 支援內容 | 僅靜態內容(HTML/CSS/JS),無法執行後端程式 |
# 建立專案
$ mkdir my-site && cd my-site
$ git init
# 建立簡單的網頁
$ cat > index.html <<'EOF'
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<title>我的第一個 GitHub Pages 網站</title>
<style>
body { font-family: sans-serif; max-width: 600px; margin: 2rem auto; padding: 0 1rem; }
h1 { color: #f05033; }
</style>
</head>
<body>
<h1>Hello, GitHub Pages!</h1>
<p>這是我用 Git 部署的第一個網站。</p>
</body>
</html>
EOF
$ git add . && git commit -m "feat: 建立首頁"
# 在 GitHub 建立一個新的 Public Repo(名稱如 my-site)
# 連結遠端並推送
$ git remote add origin git@github.com:你的帳號/my-site.git
$ git push -u origin main
GitHub Actions 是 GitHub 內建的 CI/CD(持續整合 / 持續部署)平台。它能在特定事件發生時(如 push、PR 建立)自動執行你定義的工作流程。
CI(Continuous Integration):每次提交程式碼後,自動執行測試,確保新程式碼不會破壞現有功能。
CD(Continuous Deployment):測試通過後,自動部署到正式環境。
| 概念 | 說明 |
|---|---|
| Workflow | 一個自動化流程,定義在 .github/workflows/ 目錄下的 YAML 檔案中。 |
| Event(觸發事件) | 觸發 workflow 的事件,如 push、pull_request、schedule(定時)。 |
| Job | workflow 中的一組任務。多個 job 預設平行執行,也可設定依賴順序。 |
| Step | job 中的單一步驟,可以執行指令或使用別人寫好的 Action。 |
| Action | 可重用的步驟模組,GitHub Marketplace 上有數千個現成的 Action 可用。 |
| Runner | 執行 workflow 的虛擬機器。GitHub 提供免費的 Ubuntu、macOS、Windows runner。 |
Workflow 使用 YAML 格式定義,存放在 .github/workflows/ 目錄下。
從簡單到實用的三個範例。
# .github/workflows/hello.yml
name: Hello World
on:
push:
branches: [ main ]
jobs:
greet:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Hello from GitHub Actions!"
- name: Show Date
run: date
- name: Show Git Version
run: git --version
每次 push 到 main 分支時,這個 workflow 會在 Ubuntu 虛擬機上執行三個指令。
# .github/workflows/test.yml
name: Run Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout 程式碼
uses: actions/checkout@v4
- name: 安裝 Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: 安裝依賴
run: npm ci
- name: 執行測試
run: npm test
push 或建立 PR 時自動執行 Node.js 測試。uses 引用的是 GitHub Marketplace 上的現成 Action。
# .github/workflows/deploy-pages.yml
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
permissions:
contents: read
pages: write
id-token: write
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '.'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
這是使用 Actions 部署 GitHub Pages 的官方推薦方式。
| 語法 | 說明 |
|---|---|
name: | workflow 的名稱,會顯示在 GitHub Actions 頁面。 |
on: | 定義觸發條件。可以是事件(push、PR)或定時(cron)。 |
jobs: | 定義一個或多個 job。 |
runs-on: | 指定 runner 的作業系統(ubuntu-latest、macos-latest、windows-latest)。 |
steps: | job 中的步驟列表,依序執行。 |
uses: | 使用現成的 Action(格式:owner/repo@version)。 |
run: | 直接執行 shell 指令。 |
with: | 傳入 Action 需要的參數。 |
permissions: | 設定 workflow 的權限(安全性考量)。 |
每次 push 或 PR 自動跑測試,確保程式碼品質。測試不過就不能 merge。
測試通過後自動部署到 GitHub Pages、Vercel、AWS 等平台。
自動執行 ESLint、Prettier 等工具,統一程式碼風格。
根據 tag 自動建立 GitHub Release 並產生 changelog。
自動為新 Issue 加標籤、指派人員、回覆範本訊息。
用 cron 語法定時執行,例如每天自動備份或更新資料。
| 功能 | 說明 | 適用場景 |
|---|---|---|
| GitHub Codespaces | 雲端開發環境,在瀏覽器中直接開啟 VS Code 編輯器,免安裝任何工具。 | 快速開始開發、教學環境、遠端協作。 |
| GitHub Copilot | AI 程式碼助手,在編輯器中即時提供程式碼建議與自動完成。 | 提升程式碼撰寫效率、學習新語言。 |
| GitHub Discussions | Repo 專屬的討論區,像論壇一樣的問答與交流空間。 | 社群互動、Q&A、功能投票。 |
| GitHub Packages | 託管套件(npm、Docker、Maven 等),與 Repo 整合。 | 發布與管理套件、Docker Image。 |
| GitHub Projects | 進階看板工具,支援自訂欄位、自動化規則與多種視圖(表格、看板、時間軸)。 | 專案管理、Sprint 規劃。 |
| Branch Protection Rules | 保護分支的規則:強制 PR 審查、必須通過 CI 測試才能合併。 | 保護 main 分支穩定性。 |
| Dependabot | 自動偵測專案依賴的安全漏洞,並建立 PR 更新到安全版本。 | 依賴管理、安全維護。 |
| 方案 | 每月免費額度 | Storage |
|---|---|---|
| Free | 2,000 分鐘(Linux runner) | 500 MB |
| Pro | 3,000 分鐘 | 1 GB |
| Team | 3,000 分鐘 | 2 GB |
| Enterprise | 50,000 分鐘 | 50 GB |
index.html。.github/workflows/hello.yml。