Introduction to GitHub

January 29, 2026 · View on GitHub

嘿,未來的開發者!👋 準備好加入全球數百萬程式碼撰寫者的行列了嗎?我真心很興奮地要向你介紹 GitHub-把它想像成程式設計師的社群媒體平台,不同的是我們不是分享午餐照片,而是分享程式碼,一起打造超讚的東西!

讓我覺得超震撼的是:你手機上的每個應用程式、你造訪的每個網站,以及你將學會使用的大部分工具,都是由像 GitHub 這樣的平台上團隊合作的開發者所建立的。你喜歡的音樂APP?有人像你一樣參與過它的開發。那款讓你愛不釋手的遊戲?沒錯,很可能就是用 GitHub 協作打造的。而現在,你也會學會如何成為這個超棒社群的一員!

我知道一開始可能會覺得很複雜-天啊,我還記得第一次看 GitHub 頁面時心想:「這到底是什麼?」但重點是:每一位開發者起點都是你現在的這個位置。課程結束後,你會擁有自己的 GitHub 倉庫(想像成雲端裡的個人專案展示區),並且知道怎麼儲存你的工作、分享給別人,甚至參與數百萬用戶都在使用的專案。

我們將一起逐步踏上這趟旅程。不要急,不要緊張-只有你我,還有一些即將成為你新好朋友的超酷工具!

Intro to GitHub

Sketchnote by Tomomi Imura

journey
    title 你今天的 GitHub 冒險
    section 設置
      Install Git: 4: You
      Create Account: 5: You
      First Repository: 5: You
    section 精通 Git
      Local Changes: 4: You
      Commits & Pushes: 5: You
      Branching: 4: You
    section 協作
      Fork Projects: 4: You
      Pull Requests: 5: You
      Open Source: 5: You

課前測驗

課前測驗

介紹

在深入精彩內容之前,先來準備好你的電腦,讓 GitHub 魔法發揮作用吧!想像你在創作一件藝術品之前先安排好畫具-擁有正確工具會讓一切順暢又有趣很多。

我會帶你一步步設定,我保證它沒你想像的那麼可怕。如果一開始沒馬上理解也完全沒關係!我記得剛設置開發環境時,感覺自己像在看古老的象形文字一樣。每位開發者都曾經和你一樣,心想自己是不是搞錯了。小劇透:只要你願意學,你已經走在正確的路上了!🌟

這堂課我們會學:

  • 如何追蹤你在電腦上的工作
  • 如何與他人合作專案
  • 如何為開源軟體做出貢獻

預備條件

讓我們先準備好你的電腦,讓 GitHub 魔法開始發動!別擔心-這個設定只要做一次,就能陪你整個程式碼旅程。

好,從基礎開始!首先,我們要看看 Git 是否已經安裝在你的電腦上。Git 就像一位超厲害的助理,會記住你對程式碼的每個變更-比你每兩秒瘋狂按 Ctrl+S 好太多了(大家都有過這種經驗!)

打開終端機(Terminal)輸入下面這個神奇指令,來看看 Git 是否存在: git --version

如果沒有安裝 Git,不用擔心!立刻前往 download Git 下載安裝。安裝好後,我們要讓 Git 知道你是誰:

💡 首次設定:這些指令會告訴 Git 你的身分。這些資訊會附加在你每次提交的紀錄上,所以請用你樂意公開分享的姓名和電子郵件。

git config --global user.name "your-name"
git config --global user.email "your-email"

要確認 Git 是否已配置,可以輸入:

git config --list

你還需要有一個 GitHub 帳號、程式碼編輯器(像是 Visual Studio Code),並且打開你的終端機(或命令提示字元)。

前往 github.com 註冊帳號,或是登入並完善你的個人資料。

💡 現代小技巧:考慮設定 SSH 金鑰 或使用 GitHub CLI 來方便無密碼登入。

✅ GitHub 並非唯一的程式碼儲存庫平台,但它是最廣為人知的。

準備工作

你需要在本機(筆電或桌機)有一個專案資料夾,還要有一個 GitHub 上的公開倉庫,當作示範用來學習如何貢獻他人的專案。

保護你的程式碼安全

談談安全性-別擔心,不會嚇到你!把這些安全習慣想像成鎖車門或家門-簡單的習慣,保護你的心血結晶。

我們會從一開始就示範使用安全、現代的 GitHub 使用方式,助你養成良好習慣,未來程式人生都用得上。

使用 GitHub 時,請務必遵守安全最佳實踐:

安全領域最佳做法為什麼重要
身份驗證使用 SSH 金鑰或個人存取權杖密碼安全性較差,且逐漸被淘汰
雙重驗證啟用 GitHub 帳號雙重驗證(2FA)增加帳號額外保護層
倉庫安全千萬不要提交敏感資訊API 金鑰及密碼絕不應出現在公開倉庫
相依更新管理啟用 Dependabot 自動更新相依套件保持套件安全且最新

⚠️ 重要安全提醒:切勿將 API 金鑰、密碼或其他敏感資訊推送到任何倉庫。請使用環境變數和 .gitignore 檔案保護敏感資料。

現代身份驗證設定:

# 產生 SSH 金鑰(現代 ed25519 演算法)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 設定 Git 使用 SSH
git remote set-url origin git@github.com:username/repository.git

💡 專家秘訣:SSH 金鑰可以免除重複輸入密碼,更加安全。


像專家一樣管理你的程式碼

好啦,接下來才是真正令人興奮的部分!🎉 我們即將學會怎麼像專家一樣追蹤和管理你的程式碼。說實話,這是我最喜歡教的事,因為它真的能徹底改變遊戲規則。

想像你在寫一個精彩故事,你想記錄每個草稿、每次巧妙修改和所有「哇,這點子真棒!」的時刻。Git 就幫你做到這件事!它像是能穿越時空的筆記本,記得一切-每次按鍵、每個改動、每次「糟糕,這壞掉了」的時刻,讓你馬上回到從前修正錯誤。

老實說-一開始會覺得難懂。當年我也想「為什麼不直接用一般方式存檔呢?」但相信我:當你理解 Git(肯定會的!)時,你會有那種頓悟:「以前怎麼能沒有它寫程式?」就像發現你其實能飛,而不是一輩子都走路一樣!

假設你本機有一個專案資料夾,想用 git(版本控制系統)開始追蹤你的進度。有些人形容用 git 就像寫信給未來的自己。幾天、幾週甚至幾個月後讀回你的提交訊息,就能回想起你為什麼做決定,或者「回溯」之前的改動-當然這全賴你寫的「提交訊息」好不好。

flowchart TD
    A[📁 你的專案檔案] --> B{這是 Git 倉庫嗎?}
    B -->|否| C[git init]
    B -->|是| D[進行變更]
    C --> D
    D --> E[git add .]
    E --> F["git commit -m '訊息'"]
    F --> G[git push]
    G --> H[🌟 GitHub 上的程式碼!]
    
    H --> I{想要協作嗎?}
    I -->|是| J[分叉並克隆]
    I -->|否| D
    J --> K[建立分支]
    K --> L[進行變更]
    L --> M[拉取請求]
    M --> N[🎉 貢獻中!]
    
    style A fill:#fff59d
    style H fill:#c8e6c9
    style N fill:#ff4081,color:#fff

任務:建立你的第一個倉庫!

🎯 你的任務(我超級期待你成功!):我們一起創建你的第一個 GitHub 倉庫!完成後,你會擁有網路上的一個小角落來存放你的程式碼,而且你會做出你的第一個「commit」(專業講法,即用聰明的方式儲存你的工作)。

這真的是個特別時刻-你即將正式加入全球開發者社群!我還記得自己第一次建立倉庫時,心情超激動,心想「哇,我真的在做這件事!」

讓我們一起一步步完成這趟探索旅程。慢慢來,每個步驟都會讓你越來越懂。記住,每個你尊敬的程式碼巨星都曾經如你現在這般,準備寫下第一個倉庫。是不是很酷?

觀看影片

Git and GitHub basics video

一起來做:

  1. 在 GitHub 建立你的倉庫。前往 GitHub.com,找到那個鮮綠色的 New 按鈕(或右上角的 + 符號),點擊後選擇 New repository

    這樣做:

    1. 給你的倉庫取個名字-選一個有意義的名稱!
    2. 想的話,可以加上描述(幫助別人了解專案內容)
    3. 決定倉庫是公開(所有人可見)還是私人(只有你看得到)
    4. 建議勾選新增 README 檔案-它就像專案的門面首頁
    5. 按下 Create repository,慶祝吧-你已建立第一個倉庫!🎉
  2. 打開你的專案資料夾。現在打開終端機(別怕,它沒你想像的複雜!)。我們要告訴電腦專案檔案在那裡,輸入:

    cd [name of your folder]
    

    我們在做什麼:

    • 基本上是對電腦說「嘿,帶我去我的專案資料夾」
    • 就像用滑鼠打開桌面的特定資料夾,不過用指令文字指示
    • [name of your folder] 換成你專案資料夾的實際名稱
  3. 把資料夾變成 Git 倉庫。魔法的部分來了!輸入:

    git init
    

    剛剛發生了什麼(超酷!):

    • Git 在你的專案裡建立一個隱藏的 .git 資料夾-你看不到它,但它存在!
    • 你的普通資料夾現在變成一個能追蹤所有改動的「倉庫」
    • 想像你的資料夾獲得了超能力,能記住一切
  4. 查看現況。看看 Git 現在對你的專案有什麼看法:

    git status
    

    解讀 Git 的回應:

    你可能會看到像這樣的訊息:

    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
    
         modified:   file.txt
         modified:   file2.txt
    

    別慌!這代表什麼:

    • 紅色 的檔案代表改過但還沒準備好存檔
    • 綠色 (如果出現)代表檔案已準備好儲存
    • Git 很貼心地告訴你下一步該怎麼做

    💡 專家小提示git status 是你最好的朋友!任何時候疑惑,都能問它「Hey,情況怎麼樣?」。

  5. 準備你的檔案以儲存(這叫做「暫存」):

    git add .
    

    剛剛做了啥:

    • 我們告訴 Git「嘿,下一次存檔要包含所有檔案」
    • . 代表資料夾中「全部內容」
    • 現在你的檔案都已被「暫存」,準備好進行下一步

    想挑選性暫存嗎? 你可以只暫存指定檔案:

    git add [file or folder name]
    

    為什麼想這樣做?

    • 有時你想把相關改動一次存成一組
    • 有助分類你的工作成有意義的單元
    • 方便將來理解什麼時候變動了什麼

    想取消暫存? 沒問題!用這個指令:

    # 取消所有檔案的暫存
    git reset
    
    # 只取消一個檔案的暫存
    git reset [file name]
    

    不用怕-這不會刪除你工作內容,只是把檔案從「準備存」區移除。

  6. 永久保存你的工作(開始你的第一次 commit!):

    git commit -m "first commit"
    

    🎉 恭喜!你完成了第一個 commit!

    發生了什麼事:

    • Git 在此刻對所有暫存檔案拍了一張「快照」
    • 你寫下的 commit 訊息「first commit」說明這個存檔的意義
    • Git 給了這快照一個獨特識別碼,日後可以輕鬆找到
    • 你正式開始追蹤專案歷史了!

    💡 未來的 commit 訊息:下次提交時試著更具描述性!不要只寫「updated stuff」,改成「Add contact form to homepage」或「Fix navigation menu bug」。你的未來自己會非常感謝你!

  7. 連結本機專案到 GitHub。現在你的專案只存在電腦裡,我們要把它連結到 GitHub 倉庫,這樣才能分享給世界!

    先到你的 GitHub 倉庫頁面,複製它的 URL。回來終端機,輸入:

    git remote add origin https://github.com/username/repository_name.git
    

    (把這個 URL 換成你的專案網址!)

    我們剛剛做了什麼:

    • 我們建立了您本地專案和 GitHub 儲存庫之間的連結
    • 「Origin」只是您 GitHub 儲存庫的一個暱稱——就像將連絡人加到您的手機一樣
    • 現在您的本地 Git 知道在您準備分享時要將代碼傳送到哪裡

    💡 更簡易的方法:如果您已安裝 GitHub CLI,可以用一條命令完成這個動作:

    gh repo create my-repo --public --push --source=.
    
  8. 將代碼傳送到 GitHub(重頭戲來了!):

    git push -u origin main
    

    🚀 就是現在!您正在將代碼上傳到 GitHub!

    正在發生的事情:

    • 您的 commit 正從您的電腦傳送至 GitHub
    • -u 參數設置了永久連接,讓以後推送更簡單
    • 「main」是您主要分支的名稱(就像主要資料夾)
    • 這之後,您只需輸入 git push 即可上傳!

    💡 快速提醒:如果您的分支叫別的名字(例如「master」),請改用那個名稱。您可用 git branch --show-current 查看。

  9. 您的新日常程式編寫節奏(開始上癮的地方!):

    從現在開始,每當您改動專案時,就有這樣簡單的三步舞:

    git add .
    git commit -m "describe what you changed"
    git push
    

    這將成為您的編碼心跳:

    • 為代碼做出精彩更改 ✨
    • git add 將它們階段化(「嘿 Git,注意這些更改!」)
    • git commit 和描述訊息保存它們(未來的您會感謝現在的自己!)
    • git push 分享給世界 🚀
    • 反覆如此——說真的,這將變得跟呼吸一樣自然!

    我喜歡這個工作流程,因為它就像遊戲裡的多個儲存點。喜歡剛剛做的改動?就 commit 它!想嘗試冒險?沒問題──如果出錯了,隨時可以回到最後一次 commit!

    💡 小提示:您也可能想用 .gitignore 檔案防止某些不想被追蹤的檔案出現在 GitHub 上,例如同資料夾裡您用來記錄筆記的檔案。您可從 .gitignore templates 找範本,或使用 gitignore.io 製作。

🧠 第一次提交:感覺如何?

請花點時間慶祝並反思:

  • 第一次看到代碼出現在 GitHub 上感覺如何?
  • 哪個步驟讓您最困惑,哪個步驟反而出乎意料地簡單?
  • 您能用自己的話解釋 git addgit commitgit push 的不同嗎?
stateDiagram-v2
    [*] --> LocalFiles: 建立專案
    LocalFiles --> Staged: git add .
    Staged --> Committed: git commit
    Committed --> GitHub: git push
    GitHub --> [*]: 成功!🎉
    
    note right of Staged
        準備儲存的檔案
    end note
    
    note right of Committed
        快照已建立
    end note

記得:即使是經驗豐富的開發者也有時會忘記確切指令。讓這套流程成為肌肉記憶需要練習——您做得很棒!

現代 Git 工作流程

考慮採用以下現代實務:

  • 慣例性提交(Conventional Commits):使用規範化的提交訊息格式,如 feat:fix:docs: 等。詳情請見 conventionalcommits.org
  • 原子性提交(Atomic commits):讓每次提交代表單一邏輯變更
  • 頻繁提交:經常用描述性訊息提交,而非少量但龐大的提交

提交訊息

優秀的 Git 提交主題行會完成這個句子: 如果套用,這次提交將會 <在這裡寫您的主題行>

主題請使用祈使句和現在式:「change」而非「changed」或「changes」。 在主題中如此,正文(可選)也以祈使句現在式呈現。正文應說明變更的動機,並與先前行為對比。您在解釋的是「為什麼」,不是「怎麼做」。

✅ 花幾分鐘逛逛 GitHub。能找到特別棒的提交訊息嗎?能找到特別簡潔的嗎?您認為提交訊息中什麼資訊最重要且實用?

與他人協作(最好玩的部分!)

請戴好帽子,因為這裡是 GitHub 變得魔幻的時刻!🪄 你已學會管理自己的代碼,現在我們將深入我最愛的部分——與世界各地了不起的人合作。

想像一下:明天醒來發現有人在東京睡覺時優化了你代碼;接著有人在柏林修正了你卡住的錯誤。下午時候,聖保羅的開發者加上你從未想過的功能。這不是科幻,而是 GitHub 世界裡的平常星期二!

讓我真正振奮的是,你即將學到的協作技巧,正是 Google、微軟和你喜愛的初創公司每天都在用的工作流。你不只是學會了一個酷工具——你學會了讓整個軟體世界無縫合作的祕密語言。

說真的,一旦你體驗到有人合併你的第一個拉取請求(Pull Request)的興奮,你就會理解為什麼開發者對開源那麼熱衷。這就像成為世界上最大、最有創意的團隊專案一份子!

請看影片

Git and GitHub basics video

把東西放到 GitHub 的主要原因,是為了讓與其他開發者協作成為可能。

flowchart LR
    A[🔍 尋找專案] --> B[🍴 分叉儲存庫]
    B --> C[📥 克隆到本地]
    C --> D[🌿 建立分支]
    D --> E[✏️ 進行更改]
    E --> F[💾 提交更改]
    F --> G[📤 推送分支]
    G --> H[🔄 建立拉取請求]
    H --> I{維護者審查}
    I -->|✅ 核准| J[🎉 合併!]
    I -->|❓ 請求修改| K[📝 進行更新]
    K --> F
    J --> L[🧹 清理分支]
    
    style A fill:#e3f2fd
    style J fill:#e8f5e8
    style L fill:#fff3e0

在您的儲存庫裡,導航至 Insights > Community,查看您的專案如何與建議的社群標準比較。

想讓您的儲存庫看起來專業且受歡迎嗎?前往您的儲存庫,點選 Insights > Community。這個很棒的功能會告訴您專案如何與 GitHub 社群認為的「優秀儲存庫實踐」對比。

🎯 讓您的專案閃耀:一個有良好文件的井然有序儲存庫就像擁有乾淨且熱情的店面。讓人知道您在意您的工作,也讓其他人想要參與!

一個出色儲存庫的特點有:

欄位重要性給您的好處
描述(Description)第一印象很重要!讓人立刻知道您的專案做什麼
README您專案的首頁像友善的導覽員給新訪客介紹
貢獻指南(Contributing Guidelines)展現歡迎協助讓人知道如何能幫您忙
行為準則(Code of Conduct)創造友善空間讓大家都感到歡迎參與
授權條款(License)法律明確讓其他人知道如何使用您的代碼
安全政策(Security Policy)展現專業表明您對安全負責

💡 專家祕訣:GitHub 提供這些文件的範本。建立新儲存庫時,勾選對應框即可自動生成。

探索現代 GitHub 功能:

🤖 自動化與 CI/CD:

  • GitHub Actions 進行自動化測試和部署
  • Dependabot 自動更新相依套件

💬 社群與專案管理:

  • GitHub Discussions 進行超越議題的社群對話
  • GitHub Projects 做看板式專案管理
  • 分支保護規則 強制執行程式碼品質標準

這些資源對於新團隊成員入職特別有幫助。而這些正是新貢獻者在看您的程式碼前,先用來判斷專案是否值得投入時間的資訊。

✅ README 檔案雖然準備時間不少,但經常被繁忙的維護者忽略。能找到特別詳盡的 README 範例嗎?另外,有些 工具可以幫助製作好 README 您也可以試試。

任務:合併部分代碼

貢獻文件幫助人們貢獻到專案。它說明了您期待哪類貢獻以及流程如何。在 GitHub 上,貢獻者需要通過一系列步驟才能向您的 repo 做出貢獻:

  1. Fork 您的儲存庫 您大概會希望大家「fork」您的專案。Fork 是在他們的 GitHub 帳號建立您儲存庫的副本。
  2. Clone 然後他們會把專案 clone 到電腦本地。
  3. 建立分支 您會想要求他們建立一個分支來工作。
  4. 專注於單一改動點 請貢獻者一次專注修改一件事——這樣您合併(merge)的可能性才高。想像他們寫了一個 bug 修正、新增一個功能並更新了幾個測試——如果您只想、或只能接受三個改動中的兩個或一個怎麼辦?

✅ 想想在寫作和交付好代碼時,分支特別重要的情境有哪些?

記得,自身想見的改變要來自自己,也要替自己的工作建立分支。您所做的任何 commit 都會在當前「切換到」(checked out)分支上。用 git status 看看您在哪個分支。

接下來走一遍貢獻者的工作流程。假設貢獻者已經 fork 及 clone 了儲存庫,在他們本機已有可用的 Git repo:

  1. 建立分支 用指令 git branch 建立要做貢獻的分支:

    git branch [branch-name]
    

    💡 現代方法:您也可以用一條命令同時建立並切換到這個新分支:

    git switch -c [branch-name]
    
  2. 切換到工作分支git switch 切換指定分支並更新工作目錄:

    git switch [branch-name]
    

    💡 現代提醒git switch 是改變分支時的現代替代指令,比 git checkout 清楚且更安全,適合新手。

  3. 開始工作 這時您要加入改動。別忘了用以下指令告訴 Git:

    git add .
    git commit -m "my changes"
    

    ⚠️ 提交訊息品質:確保 commit 起個好名字,為您自己也為您協助的 repo 維護者。具體說明您改了什麼!

  4. main 分支整合 某個時刻您工作完成,想與 main 分支整合。於此之前,先用以下指令確保 main 是最新的:

    git switch main
    git pull
    

    接著,您要確保所有 衝突 ,也就是 Git 無法輕易 合併 的情況,都在您的工作分支裡解決。因而請執行:

    git switch [branch_name]
    git merge main
    

    git merge main 指令會將 main 的所有變更帶入您的分支。希望您可以直接繼續。如果不能,VS Code 會告訴您 Git 到底卡在哪裡,只要修改影響檔案來決定哪部分內容是正確的。

    💡 現代替代方案:考慮用 git rebase 取得較乾淨的歷史紀錄:

    git rebase main
    

    這會將您的提交重播在最新 main 之上,形成一條絕對線性歷史。

  5. 將工作推送到 GitHub 推送工作到 GitHub 意味著兩件事。將分支推送到您的儲存庫,然後開啟 PR(拉取請求)。

    git push --set-upstream origin [branch-name]
    

    上述指令會在您分叉的儲存庫中建立分支。

🤝 協作技能測試:準備好與他人合作了嗎?

看看您對協作的感覺如何:

  • 現在您了解 fork 和 pull request 的概念了嗎?
  • 工作中關於分支的哪個部分您想多練習?
  • 您對於貢獻他人專案感覺自在嗎?
mindmap
  root((Git 協作))
    Branching
      Feature branches
      Bug fix branches
      Experimental work
    Pull Requests
      Code review
      Discussion
      Testing
    Best Practices
      Clear commit messages
      Small focused changes
      Good documentation

信心加強:每位您欣賞的開發者,首次拉取請求時都曾緊張。GitHub 社群對新手非常友善!

  1. 開啟 PR 接著,您想開啟 PR。方法是到 fork 的儲存庫 GitHub 頁面。GitHub 會提示您是否要建立新的 PR,點擊後進入介面,可調整 commit 訊息標題,給它更合理描述。這時您 fork 的原始專案維護者就會看到這個 PR,祈禱 他們會欣賞並 合併 您的 PR。您現在成為貢獻者了,耶 :)

    💡 現代技巧:您也可以使用 GitHub CLI 建立 PR:

    gh pr create --title "Your PR title" --body "Description of changes"
    

    🔧 PR 最佳實務:

    • 用像是「Fixes #123」的關鍵字連結相關 issue
    • UI 改動附上截圖
    • 指定想要審查的特定人員
    • 使用草稿 PR 進行開發中工作
    • 確保所有 CI 檢查通過後再請求審查
  2. 清理。成功合併 Pull Request 後,清理 是一個被認為良好的習慣。你要清理你的本地分支以及你推送到 GitHub 的分支。首先使用以下指令在本地刪除它:

    git branch -d [branch-name]
    

    接著請到 Fork 的 GitHub 頁面,移除你剛剛推送的遠端分支。

Pull request(拉取請求)這名稱聽起來有些奇怪,因為你真正想做的是將你的修改推送到專案中。但維護者(專案擁有者)或核心團隊需要在合併至專案的「主」分支前,審核你的修改,所以你實際上是在向維護者請求更改的決定。

Pull request 是用來比較並討論分支上的差異的地方,包含審查、意見回饋、整合測試等等。一份好的 Pull request 大致遵守和提交訊息相同的規範。當你的工作修復了一個問題時,可以加入對議題追蹤器(issue tracker)中議題的參考,做法是使用 # 後面接你的議題編號。例如 #97

🤞祈禱所有檢查都通過,專案擁有者們會將你的更改合併進專案🤞

使用 git pull 將你目前本地工作分支與 GitHub 對應遠端分支的所有新提交同步更新:

git pull

參與開源專案(你改變世界的機會!)

準備好被震撼了嗎?🤯 讓我們來談談參與開源專案吧—說實話,一想到要和你分享這些,我都起雞皮疙瘩了!

這是你成為真正非凡事物一部分的機會。想像一下改進每天數百萬開發者都在使用的工具,或修復你朋友喜愛的應用程式中的錯誤。這不只是一個夢想——這就是開源貢獻的全部意義!

讓我總是激動不已的是:你用來學習的每個工具——你的程式編輯器、我們要探索的框架、甚至你用來閱讀這篇文章的瀏覽器——其實都是由一位跟你一樣的人,做出了他們的第一次貢獻開始。那位打造你最愛 VS Code 擴充功能的天才開發者?他們也曾是初學者,用著顫抖的手點擊「建立拉取請求(create pull request)」按鈕,就像你現在要做的。

最美好的部分是:開源社群就像互聯網上最大的集體擁抱。大多數專案積極尋找新手,還有標示了「good first issue(適合初學者)」的議題,專門為像你這樣的人準備!維護者看到新貢獻者時會真心感到興奮,因為他們還記得自己的第一步。

flowchart TD
    A[🔍 探索 GitHub] --> B[🏷️ 找到 "good first issue"]
    B --> C[📖 閱讀貢獻指南]
    C --> D[🍴 分叉倉庫]
    D --> E[💻 設置本地環境]
    E --> F[🌿 創建功能分支]
    F --> G[✨ 做出你的貢獻]
    G --> H[🧪 測試你的更改]
    H --> I[📝 撰寫清晰的提交訊息]
    I --> J[📤 推送並創建 PR]
    J --> K[💬 參與反饋討論]
    K --> L[🎉 合併!你是貢獻者了!]
    L --> M[🌟 找下一個問題]
    
    style A fill:#e1f5fe
    style L fill:#c8e6c9
    style M fill:#fff59d

你不是僅僅在學習編寫程式碼——你正在準備加入一個全球建造者的大家庭,他們每天醒來都在想:「我們怎麼讓數位世界變得更好一點?」歡迎加入這個俱樂部!🌟

首先,讓我們在 GitHub 找到一個你感興趣、且想要貢獻修改的程式碼庫(repo)。你會想把它的內容複製到你的機器上。

✅ 找尋「適合新手」的優良程式碼庫的好方法是 透過 'good-first-issue' 標籤搜尋

將程式庫複製到本機

複製程式碼有多種方式。常見的一種是使用 HTTPS、SSH 或 GitHub CLI(命令列介面)來「克隆」整個程式庫內容。

打開終端機,像這樣克隆儲存庫:

# 使用 HTTPS
git clone https://github.com/ProjectURL

# 使用 SSH(需要設定 SSH 金鑰)
git clone git@github.com:username/repository.git

# 使用 GitHub CLI
gh repo clone username/repository

要開始專案,切換到正確的目錄: cd ProjectURL

你也可以使用以下方式打開整個專案:

  • GitHub Codespaces - 透過瀏覽器使用 VS Code 的 GitHub 雲端開發環境
  • GitHub Desktop - 針對 Git 操作的圖形介面應用程式
  • GitHub.dev - 在任何 GitHub 儲存庫按下 . 鍵,於瀏覽器打開 VS Code
  • 安裝 GitHub Pull Requests 擴充功能的 VS Code

最後也可以下載壓縮檔的程式碼。

關於 GitHub 的一些有趣資訊

你可以收藏(star)、關注(watch)和/或「派生」(fork) GitHub 上任何公開程式庫。你可以在右上方的下拉選單中找到你收藏的儲存庫。這就像為程式碼做書籤一樣。

專案有議題追蹤系統,大多數位於 GitHub 的「Issues」標籤頁,除非另有標示,在這裡大家討論專案相關問題。拉取請求(Pull Requests)標籤頁則是大家討論及審查進行中修改的地方。

有些專案也會在論壇、郵件列表或 Slack、Discord、IRC 等聊天室中討論。

🔧 現代 GitHub 功能

  • GitHub Discussions - 內建的社群討論區
  • GitHub Sponsors - 金錢支持維護者
  • Security tab(安全標籤) - 漏洞報告與資安公告
  • Actions tab(工作流程標籤) - 查看自動化流程與 CI/CD 管線
  • Insights tab(洞察標籤) - 關於貢獻者、提交與專案健康狀況的分析
  • Projects tab(專案標籤) - GitHub 內建的專案管理工具

✅ 到你的新儲存庫四處看看,嘗試設定、編輯資料、建立專案(例如看板),及設定 GitHub Actions 自動化。有很多事情你可以做!


🚀 挑戰

好了,是時候測試你閃亮的新 GitHub 超能力了!🚀 這個挑戰會讓一切在最令人滿意的方式中連結起來:

找一個朋友(或者那位總問你「你到底在搞什麼電腦東西」的家人)一起開始合作編碼冒險!真正的魔法從這裡開始——創建一個專案,讓對方 fork,建立一些分支,並像專家一樣合併變更。

我不騙你——你們過程中可能會笑翻(尤其是同時改到同一行時)、也可能摸不著頭緒,但你們一定會有那些「啊哈!」的精彩時刻,讓學習之旅都值回票價。而且跟別人分享第一次成功合併的感覺很特別——就像慶祝你走了多遠!

還沒有編程夥伴?完全不用擔心!GitHub 社群非常熱情友善,他們還記得新手時的感覺。找尋標示有「good first issue」的儲存庫——這些就是在說:「嘿,新手,來跟我們一起學習吧!」多棒啊!

課後測驗

Post-lecture quiz

回顧與持續學習

呼!🎉 看看你——你剛剛像冠軍一樣征服了 GitHub 基礎!如果你現在腦袋覺得有點滿,那是很正常的,甚至是好現象。你學到的工具,我剛開始時花了好幾週才能熟悉。

Git 和 GitHub 非常強大(真的很強大),我認識的每位開發者——包括那些看起來像巫師的高手們——都得碰撞、練習、走彎路才終於能掌握。你完成這課代表你已經踏上了精通開發者最重要工具之一的路。

以下都是極佳的資源,幫你練習並變得更厲害:

記得:練習造就進步,不是完美!你越用 Git 和 GitHub,就會越自然。GitHub 也推出了非常棒的互動課程,讓你在安全的環境中練習:

想挑戰更進階工具?試試這些現代化工具:

GitHub Copilot Agent 挑戰 🚀

使用 Agent 模式完成以下挑戰:

描述: 建立一個協作網頁開發專案,展示本課程中學到的完整 GitHub 工作流程。此挑戰將幫助你在真實情境中練習儲存庫創建、協作功能與現代 Git 工作流程。

提示: 建立一個公共 GitHub 儲存庫,主題為簡單的「網頁開發資源」專案。此儲存庫應包含結構良好的 README.md 檔,列出實用的網頁開發工具和資源,並依類別(HTML、CSS、JavaScript 等)組織。設定儲存庫以符合社群標準,包括授權條款、貢獻指引與行為準則。建立至少兩個功能分支:一個用來新增 CSS 資源,另一個用來新增 JavaScript 資源。對每個分支進行有描述性提交訊息的 commit,然後建立 Pull Request 將變更合併回 main。啟用 Issues、Discussions 等 GitHub 功能,並且設定基本的 GitHub Actions 工作流程自動檢查。

作業

你的任務,如果你願意接受:完成 GitHub Skills 的 Introduction to GitHub 課程。這個互動課程會讓你在安全、有引導的環境中練習你所學的一切。完成後還能獲得一個炫酷的徽章!🏅

準備好接受更多挑戰了嗎?

  • 設定 GitHub 帳號的 SSH 認證(不再需要密碼!)
  • 嘗試使用 GitHub CLI 進行日常 Git 操作
  • 建立一個帶有 GitHub Actions 工作流程的儲存庫
  • 用 GitHub Codespaces 開啟此儲存庫,體驗雲端編輯器

🚀 你的 GitHub 精通時間表

接下來 5 分鐘能做到的事情

  • 收藏此儲存庫及另 3 個你感興趣的專案
  • 在 GitHub 帳號設定雙重身份驗證
  • 為你的第一個儲存庫建立簡單的 README
  • 追蹤 5 位讓你感覺受啟發的開發者

🎯 這一小時可以完成的目標

  • 完成課後測驗,並反思你的 GitHub 旅程
  • 設定 SSH 金鑰以免密碼驗證
  • 做出你的第一個具意義的 commit,並寫好提交訊息
  • 探索 GitHub 的「探索」標籤,發現熱門專案
  • 練習 fork 一個儲存庫並做些小修改

📅 本周的 GitHub 探險

  • 完成 GitHub Skills 課程(入門 GitHub、Markdown)
  • 向一個開源專案發送你的第一個 pull request
  • 設置 GitHub Pages 來展示你的成果
  • 參與你感興趣專案的 GitHub Discussions
  • 建立一個符合社群標準(README、授權等)的儲存庫
  • 嘗試使用 GitHub Codespaces 進行雲端開發

🌟 本月的蛻變目標

  • 向 3 個不同的開源專案貢獻程式碼
  • 指導一位 GitHub 新手(回饋社群!)
  • 設置 GitHub Actions 自動工作流程
  • 建立展示你 GitHub 貢獻的作品集
  • 參加 Hacktoberfest 或類似社群活動
  • 成為你自己專案的維護者,並邀請其他人貢獻

🎓 最終 GitHub 精通檢查

慶祝你走了多遠:

  • 你最喜歡 GitHub 的哪一點?
  • 哪個協作功能讓你最感興趣?
  • 你對貢獻開源的信心有多少?
  • 你第一個想貢獻的專案是什麼?
journey
    title 你的 GitHub 自信旅程
    section 今天
      緊張: 3: 你
      好奇: 4: 你
      興奮: 5: 你
    section 這週
      練習中: 4: 你
      貢獻中: 5: 你
      連結中: 5: 你
    section 下個月
      協作中: 5: 你
      領導中: 5: 你
      激勵他人: 5: 你

🌍 歡迎加入全球開發者社群! 你現在擁有與全球數百萬開發者協作的工具。你的第一筆貢獻可能看似微小,但請記住——每個重要的開源專案都是從有人做出第一次提交開始。問題不在於你是否會有所影響,而是第一個因你的獨特觀點而受益的神奇專案會是什麼!🚀

記住:每個專家也曾是初學者。你可以的!💪


免責聲明
本文件係使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們致力於達到準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原文文件的母語版本應視為權威來源。對於重要資訊,建議聘請專業人工翻譯。我們不對因使用本翻譯所產生之任何誤解或錯誤解釋承擔責任。