# Day 2 - 把程式碼拿到手:Git 與 GitHub 入門 ## 劇情背景 第二天一早,你準時抵達 LiveFit 辦公室。海克絲正要把專案連結給你,卻突然臉色一變—— 「等等,這⋯⋯什麼?!這個專案竟然是 Public 的?!」 你一頭霧水:「Public?那是什麼意思?」 海克絲嘆了口氣:「前任後端竟然把專案完全公開在網路上⋯⋯如果程式碼有漏洞,駭客就能直接研究怎麼攻擊我們的系統。」 她深吸一口氣,說:「算了,這就是我們接手的現況。但在處理這些問題之前,你得先學會一件事——如何把程式碼『拿到手』。在軟體開發的世界裡,我們用的是 Git 和 GitHub。」 ![shocked](https://hackmd.io/_uploads/Sk-j5kfBWx.png) --- ## 學習目標 - 了解 Git 是什麼,以及為什麼需要版本控制 - 認識 GitHub 與 Git 的關係 - 學會 Clone 專案到本地電腦 - 理解 Public 與 Private 專案的差異與安全性 --- ## 核心概念 ### Git 是什麼? Git 是一個「版本控制系統」,就像是程式碼的時光機。它可以: - 記錄每一次的修改歷史 - 讓你隨時回到過去的版本 - 讓多人同時協作開發 **生活比喻:** > 想像你在寫一份報告,每次修改都另存新檔:報告_v1、報告_v2、報告_最終版、報告_最終版_真的最終... > Git 就是幫你自動管理這些版本,而且更聰明、更有條理。 ### GitHub 是什麼? GitHub 是一個「程式碼託管平台」,可以把它想成: - 程式碼的雲端硬碟 - 工程師的社群網站 - 開源專案的集散地 **Git vs GitHub:** | Git | GitHub | |-----|--------| | 版本控制工具 | 託管平台 | | 裝在你的電腦 | 在網路上 | | 記錄修改歷史 | 儲存和分享程式碼 | ### Clone 是什麼? Clone(克隆)就是把 GitHub 上的專案「下載到你的電腦」。 Clone 之後,你的電腦裡就會有一份完整的專案程式碼,可以開始修改和開發。 ### Public vs Private 專案 GitHub 專案有兩種可見性設定: | Public | Private | |--------|---------| | 任何人都可以看到程式碼 | 只有授權的人可以看到 | | 適合開源專案 | 適合公司內部專案 | | 程式碼漏洞可能被研究 | 較安全 | **為什麼後端專案通常設成 Private?** > 如果程式碼有漏洞,駭客可能會研究程式碼找到攻擊方式。後端專案設成 Private 可以減少這種風險。 --- ## 今日任務 ### 任務內容 1. **必做:完成遊戲測驗** - 進入遊戲完成 Day 2 關卡 - 👉 **[點此進入遊戲](https://hexschool.github.io/backend-camp-game/)** 2. 非必做:攻略以下兩個任務 * [任務一:資料庫與 Docker 環境建立](https://rpg.hexschool.com/#/training/12063182914150888561/board/content/12063182914150888562_12063182914150888575?tid=12063182914152027037) * [任務二:把前後端 code on 起來](https://rpg.hexschool.com/#/training/12063182914150888561/board/content/12063182914150888562_12063182914150888575?tid=12063182914152027038) --- ## 測驗題目預覽 ### Git 與 GitHub 基礎觀念 (7 題) 1. Git 是什麼類型的工具? 2. GitHub 與 Git 的關係是什麼? 3. Clone 的作用是什麼? 4. Git 可以做到以下哪件事? 5. GitHub 上的 Public 專案代表什麼? 6. 為什麼後端專案通常會設成 Private? 7. Clone 完成後,專案會出現在哪裡? --- ## 遊戲連結 請進入遊戲完成 Day 2 關卡: 👉 **[點此進入遊戲](https://hexschool.github.io/backend-camp-game/)** --- ## 回報格式(確認打卡細節) 1. 完成遊戲中的測驗並截圖完成畫面 2. 到體驗營 Discord 的[每日活動頻道](https://discord.com/channels/801807326054055996/1446368763581562880),找到當天任務的討論串 3. 在討論串留言貼上截圖,打卡儀表板會自動記錄你的成績 4. 分享一下此關卡有哪些知識點讓你印象深刻,甚至有透過 AI 服務延伸學習 ![截圖 2026-01-02 下午5.16.29](https://hackmd.io/_uploads/BJig6WSEZg.png) --- ## 海克絲的叮嚀 > 「Git 和 GitHub 是工程師的基本功,就像廚師要會用刀一樣。剛開始可能會覺得有點複雜,但相信我,用久了就會變成直覺。今天先把專案拿到手,明天我們再來把它跑起來!」 --- ## 延伸學習 - [Git 教學手冊 - 洧杰校長](https://w3c.hexschool.com/git/cfdbd310) - [為你自己學 Git](https://gitbook.tw/)