單元 8 · 開源協作與最佳實踐

從使用者變成貢獻者 — Open Source & Best Practices

最後一單元:學會參與開源、把 repo 養成專業水準,並認識 gh 命令列與安全。

Fork · 複製別人的專案

Fork = 把別人的 repo「複製一份到你的帳號」,你就可以隨意改。 之後可以(1)自己用,或(2)發起 Pull Request 把改動貢獻回原專案。

Fork 工作流 · WORKFLOW
1. 瀏覽某 repo → 右上角 Fork
2. clone 你的 fork 到本機
   git clone https://github.com/你/原repo.git
3. 加上游 remote(原專案)
   git remote add upstream https://github.com/原作者/原repo.git
4. 開分支 → 改 → push → 開 PR(原 repo 的「New pull request」)
好習慣:開發前 git fetch upstream && git merge upstream/main, 把原專案最新進度同步進來,避免 PR 衝突。

如何開始貢獻 · First Contribution

  1. 找標籤 good first issuehelp wanted 的專案(單元 5)。
  2. 先留言「我想做這個」,確認再動手。
  3. 讀專案的 CONTRIBUTING.md(貢獻規範)。
  4. 小步提交、寫清楚 commit message。
  5. 開 PR,耐心回覆 review 意見。
從小的開始:改錯字、修文件、加測試都是極好的第一筆貢獻—— README 修一個連結,就完成一次真實開源貢獻。

License · 授權

沒有 LICENSE 的 repo,法律上別人不能合法使用你的程式碼。開源專案一定要放。

授權特點
MIT最寬鬆:幾乎隨你用,附授權聲明即可
Apache-2.0寬鬆 + 專利授權保障
GPL-3.0改作也必須開源(copyleft)
CC-BY-4.0內容/文件用(本站就是用這個)

本站四個教學站的內容授權都是 CC-BY-4.0。

社群禮儀 · Community Etiquette

gh CLI · 命令列 GitHub

整個 GitHub 都能在終端機操作,寫指令時超方便:

gh 常用指令 · COMMANDS
gh auth login              # 登入
gh repo create my-site --public --source=. --push
gh repo clone owner/repo
gh issue list               # 列出 issues
gh issue create --title "..." --body "..."
gh pr create --fill         # 開 PR
gh pr checkout 123          # 切到某 PR 的分支

安全最佳實踐 · Security

做法說明
Secrets 用 GitHub Secrets不寫進 repo(單元 7)
Dependabot自動掃描相依套件漏洞並開 PR 修復
Code scanning內建弱點掃描(可用 CodeQL)
簽署 commit用 GPG/SSH 簽名,證明是你提交的
保護分支強制 PR + review + CI(單元 4、7)
Secret scanningGitHub 主動掃描洩漏的 Token 並通知
紅線:repo 出現意外洩漏的 Token/金鑰 → 立即到設定撤銷該憑證,再清理歷史 (git filter-repo),最後通知 GitHub support。

把整門課串起來

  1. :Git vs GitHub、平台總覽(單元 1)。
  2. 上手:repo、commit、push(單元 2)。
  3. 協作:分支、PR、review、Issues(單元 3–5)。
  4. 發布與自動化:Pages、Actions(單元 6–7)。
  5. 貢獻與責任:Fork、License、安全(本單元)。
畢業作業:Fork 本站(github-tech-zh-tw), 修一個錯字或加一段內容,再開一個 PR 回來——完成你的第一次開源貢獻!
看完這頁你應該能說出:
  • Fork 與 PR 的貢獻流程、upstream 同步。
  • 如何找到第一個可貢獻的 issue。
  • License 的選擇與「沒 License = 不能合法使用」。
  • 社群禮儀與被拒 PR 的心態。
  • gh CLI 常用指令與安全最佳實踐。

延伸閱讀