Podcast 播放
核心概念
理解Git的基石。本章節將透過互動圖表,幫助您視覺化地掌握Git如何管理您的程式碼,特別是工作目錄、暫存區和儲存庫這三大區域之間的關係。
三大工作區域互動模型
這是 Git 最核心的工作流程。您的檔案會在「工作目錄」被修改,透過 git add
進入「暫存區」待命,最後藉由 git commit
永久存入「Git 儲存庫」。點擊下方按鈕,觀察檔案狀態的流轉!
1. 工作目錄
2. 暫存區 (Index)
3. Git 儲存庫
Git的資料處理:快照而非差異
與許多版本控制系統儲存「檔案差異」不同,Git的核心思想是「快照」。每次提交時,Git都會對整個專案製作一個快照並儲存。如果檔案未修改,Git只會保留一個指向之前已儲存檔案的連結。這使得Git在處理分支和歷史紀錄時極其高效。
基礎工作流
本章節涵蓋了您日常開發中最常用的Git指令。從初始化專案到提交您的第一個變更,我們將一步步引導您完成整個流程。
git init
在目前目錄初始化一個新的Git儲存庫。
git init
git status
顯示工作目錄和暫存區的狀態,是您的「安全網」。
git status
git add
將檔案變更加到暫存區,準備提交。
git add <file_name>
git add .
git commit
將暫存區的內容建立一個新的提交紀錄。
git commit -m "提交訊息"
git log
查看提交歷史紀錄。
git log
git log --oneline --graph
初始設定
設定您的使用者名稱和Email,這對團隊協作至關重要。
git config --global user.name "你的名字"
git config --global user.email "你的郵箱"
分支管理
分支是Git的王牌功能。它讓您能安全地在獨立的環境中開發新功能或修復錯誤,而不影響主線。此互動圖表將展示分支的建立、提交與合併過程。
分支流程互動模型
Git Flow
一種嚴謹的分支策略,定義了 master, develop, feature, release, hotfix 五種分支。適合需要嚴格版本控制的大型專案。
GitHub Flow
一種輕量化的策略,只有一個主分支 (main)。所有開發都在特性分支進行,透過 Pull Request 合併。適合快速迭代和持續交付的專案。
遠端協作
軟體開發是團隊運動。本章節介紹如何與GitHub等遠端儲存庫互動,同步您和他人的工作成果。
git clone
將一個遠端儲存庫完整複製到您的本地電腦。
git clone <repository_URL>
git push
將您的本地提交推送到遠端儲存庫。
git push origin <branch_name>
fetch vs pull
兩者都用於同步遠端變更,但有細微且重要的差別:
git fetch
只會下載遠端最新的資料到本地,但**不會**自動合併或修改您目前的工作。它讓您能在合併前先查看遠端的變更。
git pull
是 `git fetch` 加上 `git merge` 的組合。它會下載最新資料並**立即嘗試合併**到您目前的分支。更為直接,但也可能立即產生合併衝突。
撤銷與還原
人非聖賢,孰能無過。學會如何安全地撤銷錯誤操作是專業開發者的必備技能。這裡我們將比較兩種最關鍵的撤銷提交指令:revert
和 reset
。
Revert vs Reset 互動比較
假設我們有一個提交歷史,現在想要撤銷「加入錯誤功能」這個提交。使用下方的開關,看看 `revert` 和 `reset` 分別會對歷史紀錄做什麼。
良好習慣
技術只是工具,良好的習慣才能發揮其最大價值。養成這些習慣,將使您成為更可靠的團隊成員。
✨ 提交粒度適中
一次提交只做一件事(如修復一個Bug、開發一個小功能)。
📝 撰寫清晰的提交訊息
讓未來的自己和同事能快速理解這次變更的目的。
🔄 頻繁使用 `git status`
在執行 `add` 和 `commit` 前,永遠清楚自己的工作區狀態。
🤝 推送前先拉取
執行 `git push` 前,先用 `git pull` 同步遠端變更,減少衝突。
常用指令分佈
這張圖表大致呈現了不同類型Git指令在日常工作中的使用頻率,幫助您了解學習的重點。