Minghsin University of Science and Technology
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try a Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

1

Local AI

--

Uedu Code

--

明新科大 AQI 70 24°C PM2.5 19
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 01

版本控制入門:建立第一個儲存庫

為什麼需要版本控制、安裝與設定、init/add/commit/log
Interaction導覽 20 minute(s)

Learning Objectives

  • 了解版本控制的用途,以及 Git 的四大區塊與檔案狀態
  • 完成 Git 的安裝與初次設定(git --version、git config)
  • 用 git init、git status、git add、git commit、git log 建立並管理第一個本機儲存庫

為什麼需要版本控制

寫程式的時候,你是不是也存過 作業_v2.py、作業_final.py、作業_final_真的最終版.py? 版本控制系統(Version Control System,VCS)幫你把這件事做好:

  • 記錄每一次修改的歷程:誰、在什麼時候、改了什麼、為什麼改
  • 改壞了可以輕鬆回到之前的版本
  • 多人協作時,每個人的修改可以合併在一起,而不會互相覆蓋

Git 是目前最普及的版本控制工具,由 Linux 核心的開發者 Linus Torvalds 在 2005 年開發。它的特色:

特色 說明
分散式 每個人的電腦上都有完整的版本庫,不用擔心伺服器上的檔案遺失
不需要網路 在本機就能提交版本,之後再連線同步
開放原始碼 免費、跨平台,對版本庫的瀏覽與修改沒有限制
快速、支援分支 大型專案也很快,可以自由開分支開發,再合併回來

GitHub 則是全球最大的 Git 雲端服務:把本機的版本庫放上去備份、分享、協作。 Git 是工具,GitHub 是放版本庫的網站,兩者不一樣。

Git 的四大區塊與三種狀態

Git 把你的專案分成四個區塊,檔案會在它們之間移動:

區塊 說明 移到下一區的指令
工作目錄(Working directory) 你實際編輯檔案的資料夾 git add
預存區(Staging area) 準備放進下一個版本的檔案快照 git commit
本機儲存庫(Git directory) 專案資料夾裡的 .git 隱藏目錄,存放所有版本 git push
遠端儲存庫(Remote repository) 例如 GitHub 上的版本庫 git pull 拿回本機

被 Git 追蹤的檔案有三種狀態:

  • 已修改(modified):檔案改過了,但還沒放進預存區
  • 已預存(staged):已經 git add,會被放進下一次提交的快照
  • 已提交(committed):已經安全地存進本機儲存庫

還沒被 Git 追蹤的新檔案叫做未追蹤(untracked)。基本工作流程就是: 在工作目錄修改檔案 → git add 預存 → git commit 提交。接下來的導覽會實際走一遍。

動畫:檔案在四個區塊之間移動

先在模擬器裡操作一次,再到自己的電腦上實作。按上方的指令按鈕(深色的是 git 指令),看檔案卡片怎麼從「工作目錄」移到「預存區」再進入「本機儲存庫」,下方的提交圖也會長出新的提交。右下角的任務照順序完成就會打勾;按「重來」可以從頭再玩。

安裝 Git 與初次設定

先安裝 Git:Windows 到 git-scm.com 下載 Git for Windows(會附 Git Bash 終端機);macOS 在終端機輸入 git,系統會引導安裝;Ubuntu 用 sudo apt install git。裝好之後打開終端機,跟著下面幾步設定。

  1. 1

    確認 Git 版本

    輸入 git --version,看到版本號碼就表示安裝成功。

  2. 2

    設定你的名字與 Email

    每一次提交都會記錄是誰做的修改(像是在版本上簽名)。名字可以用暱稱,不一定要和 GitHub 帳號相同;Email 建議和 GitHub 帳號使用同一個。--global 表示這台電腦上的所有專案都用這組設定。

  3. 3

    把預設分支名稱設為 main

    新建的儲存庫預設分支以前叫 master,現在 GitHub 預設用 main。先設定好,之後兩邊就一致。你在舊教材或舊專案看到 master,意思是一樣的。

  4. 4

    檢查設定

    git config --list 列出目前的所有設定,確認名字與 Email 有沒有打錯。

這段導覽完成了

建立第一個儲存庫並提交

這一段走完「init → status → add → commit → log」的完整流程。每做一步就用 git status 看看檔案的狀態變了沒,這是學 Git 最好的習慣。(範例使用 Git Bash 或 macOS 終端機的指令。)

  1. 1

    建立資料夾並初始化

    git init 會在目前的資料夾裡建立一個 .git 隱藏目錄,從此這個資料夾就是一個 Git 儲存庫。一個專案只需要 init 一次。

  2. 2

    查看狀態:還沒有任何提交

    git status 告訴你目前在哪個分支、有哪些檔案改過。現在資料夾是空的,所以沒有東西可以提交。

  3. 3

    新增檔案:未追蹤(untracked)

    建立一個 README.md(用 VS Code 新增也可以)。再看一次狀態,它出現在 Untracked files:Git 看到了,但還沒開始追蹤。

  4. 4

    git add:放進預存區(staged)

    git add . 把目前資料夾裡所有新增、修改、刪除的檔案放進預存區(. 代表目前資料夾)。狀態變成 Changes to be committed。只想加一個檔案時,可以寫 git add README.md。

  5. 5

    git commit:存成一個版本(committed)

    git commit -m "訊息" 把預存區的快照永久存進儲存庫。訊息要簡短說明「這次改了什麼」,以後回頭找版本全靠它。輸出中的 3f2a1c9 是這個版本的代號(雜湊值的前幾碼)。

  6. 6

    git log:查看版本歷史

    git log 列出所有提交:版本代號、作者、時間與訊息。HEAD -> main 表示你目前在 main 分支的這個版本上。按 q 離開。

這段導覽完成了

想一想:檔案狀態與基本流程

1.

你新增了 app.py 並執行 git add app.py,還沒有 commit。這時 app.py 處於哪個狀態?

2.

git init 做了什麼事?

3.

第一次使用 Git,為什麼要先執行 git config --global user.name 與 user.email?

第 1 次作答

重點精華回顧

  • 版本控制記錄每一次修改,可以回到舊版本,也讓多人協作不互相覆蓋。Git 是工具,GitHub 是放版本庫的雲端服務。
  • 四大區塊:工作目錄 →(git add)→ 預存區 →(git commit)→ 本機儲存庫 →(git push)→ 遠端儲存庫。
  • 檔案狀態:未追蹤、已修改、已預存、已提交;隨時用 git status 確認。
  • 初次設定:git config --global user.name、user.email,用 git config --list 檢查。
  • git init 建立儲存庫,git add 放進預存區,git commit -m "說明" 存成版本,git log 看歷史。
這一課完成了!
Next lesson:修改、比對與忽略檔案
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。