身為一位資深工程師,我經常被問到:「什麼是版本控制?為什麼我需要學 Git?」今天,我們就從最基礎的概念開始,帶你踏入 Git 的世界。
為什麼需要版本控制?
想像你正在寫一篇重要的報告,你可能會這樣命名檔案:
報告_初稿.docx
報告_修改版.docx
報告_最終版.docx
報告_真正最終版.docx
報告_老闆審核後.docx
這種情況熟悉嗎?在程式開發中,我們也會遇到同樣的問題,但規模更大:數百個檔案、數千行程式碼、多人同時修改。如果沒有適當的管理工具,很快就會陷入混亂。
版本控制系統就像是你程式碼的「時光機」,它能夠:
- 記錄每一次的修改內容
- 讓你隨時回到任何一個歷史版本
- 讓多人同時在同一個專案上工作而不會互相干擾
- 追蹤誰在什麼時候修改了什麼內容
Git 與其他版本控制系統的差異
在 Git 出現之前,我們使用的是集中式版本控制系統,像是 SVN。想像集中式系統就像一個圖書館,所有書籍都存放在中央,每次要查閱或修改都必須到圖書館,而且同一時間只能有一個人借閱同一本書。
Git 採用的是分散式架構,就像每個開發者都有一個完整的圖書館副本在自己家裡。你可以在離線狀態下工作、修改、甚至建立新的版本,只有在需要與他人分享時才需要連線同步。
這種設計讓 Git 具備了以下優勢:
- 離線工作能力
- 更快的操作速度
- 更強的資料完整性
- 更靈活的協作模式
安裝 Git
Windows 使用者
前往 Git 官網下載安裝檔:
https://git-scm.com/download/win
安裝過程中,建議保持預設設定即可。安裝完成後,你可以透過「Git Bash」或「命令提示字元」使用 Git。
macOS 使用者
有三種安裝方式:
方法一:使用 Homebrew(推薦)
brew install git
方法二:使用 Xcode Command Line Tools
xcode-select --install
方法三:下載安裝檔
https://git-scm.com/download/mac
Linux 使用者
Ubuntu/Debian:
sudo apt update
sudo apt install git
CentOS/RHEL:
sudo yum install git
Fedora:
sudo dnf install git
驗證安裝
安裝完成後,打開終端機輸入以下指令:
git --version
如果看到類似以下輸出,代表安裝成功:
git version 2.39.1
Git 的初始設定
在開始使用 Git 之前,我們需要告訴 Git 你是誰。這就像在圖書館辦借書證一樣,系統需要知道是誰在進行操作。
設定使用者資訊
git config --global user.name "你的姓名"
git config --global user.email "your.email@example.com"
例如:
git config --global user.name "張小明"
git config --global user.email "ming@example.com"
設定預設編輯器
當 Git 需要你輸入訊息時(例如提交說明),會開啟文字編輯器。你可以設定自己習慣的編輯器:
# 使用 VS Code
git config --global core.editor "code --wait"
# 使用 Sublime Text
git config --global core.editor "subl -n -w"
# 使用 Vim
git config --global core.editor vim
# 使用 Nano
git config --global core.editor nano
設定換行符號處理
不同作業系統使用不同的換行符號,Windows 使用 CRLF,而 macOS 和 Linux 使用 LF。為了避免不必要的問題:
Windows 使用者:
git config --global core.autocrlf true
macOS 和 Linux 使用者:
git config --global core.autocrlf input
檢查設定
你可以用以下指令檢查所有設定:
git config --list
或檢查特定設定:
git config user.name
git config user.email
Git 的三個重要概念區域
在深入使用 Git 之前,你必須理解 Git 的三個核心區域,這是 Git 與其他版本控制系統最大的不同:
1. 工作區(Working Directory)
這是你實際編輯檔案的地方,就像你桌上正在處理的文件。當你用編輯器開啟檔案並修改時,這些變更都發生在工作區。
2. 暫存區(Staging Area)
想像暫存區是一個「準備區」,就像你把要寄出的信件先放在桌上整理,確認內容無誤後再投入郵筒。在 Git 中,你會先把想要提交的變更放到暫存區,確認後再正式提交。
3. 本地倉庫(Local Repository)
這是 Git 儲存所有版本歷史的地方,就像是一個完整的檔案庫。一旦檔案被提交到這裡,就會被永久保存,你隨時可以回到任何一個歷史版本。
檔案流程示意
[工作區] --git add--> [暫存區] --git commit--> [本地倉庫]
這種設計讓你可以:
- 在工作區自由實驗和修改
- 選擇性地將部分變更加入暫存區
- 一次提交所有暫存的變更
設定 Git 全域忽略檔案
作為工程師,我們經常會產生一些不想被版本控制的檔案,例如編輯器的暫存檔、作業系統的系統檔案等。你可以建立一個全域的忽略檔案:
建立全域 .gitignore:
# macOS/Linux
touch ~/.gitignore_global
# Windows
echo. > %USERPROFILE%\.gitignore_global
設定 Git 使用這個檔案:
git config --global core.excludesfile ~/.gitignore_global
在檔案中加入常見的忽略規則:
# macOS
.DS_Store
.AppleDouble
.LSOverride
# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
# 編輯器
*.swp
*.swo
*~
.vscode/
.idea/
# 暫存檔
*.tmp
*.temp
*.log
檢查 Git 狀態的好習慣
在我多年的工程經驗中,我發現新手最容易犯的錯誤就是不確定目前的 Git 狀態。養成隨時檢查狀態的習慣非常重要:
git status
這個指令會告訴你:
- 目前在哪個分支上
- 哪些檔案被修改了
- 哪些檔案在暫存區中
- 哪些檔案尚未被追蹤
就像開車前檢查儀表板一樣,使用 Git 前先檢查狀態是個好習慣。
小結
今天我們涵蓋了 Git 的基本概念、安裝過程,以及重要的初始設定。記住這些重點:
- Git 是分散式版本控制系統,每個人都有完整的專案副本
- 理解工作區、暫存區、本地倉庫三個區域的概念至關重要
- 正確的初始設定會讓後續使用更順暢
- 隨時檢查 Git 狀態是個好習慣
在下一篇文章中,我們將開始實際操作 Git 的基本指令,建立你的第一個倉庫,並學習如何追蹤和提交檔案變更。
準備好開始你的 Git 之旅了嗎?記住,學習任何新技能都需要時間和練習,不要急著一次學會所有東西。先打好基礎,後續的進階技巧自然會水到渠成。