Git 完整使用教學:從入門到實戰,附完整指令範例

🗂️ Git 完整使用教學

從入門到實戰,附完整指令範例 · 適合所有程度的開發者

📋 本文重點

  • ✅ Git 是什麼?為什麼要學?
  • ✅ 安裝與初始設定
  • ✅ 基本工作流程(add / commit / push)
  • ✅ 分支管理(branch / merge / rebase)
  • ✅ 遠端協作(clone / pull / push)
  • ✅ 常見狀況處理(衝突、回滾、stash)
  • ✅ 實用指令速查表

🤔 Git 是什麼?

Git 是目前最廣泛使用的分散式版本控制系統,由 Linux 之父 Linus Torvalds 於 2005 年開發。簡單來說,Git 可以幫你:

📸
記錄每次變更
像快照一樣儲存每個版本

⏪
隨時回滾
任何時間點都能還原

👥
多人協作
不怕互相覆蓋程式碼


⚙️ 安裝與初始設定

安裝 Git

# macOS(使用 Homebrew)

brew install git

# Ubuntu / Debian

sudo apt-get update
sudo apt-get install git

# Windows:前往官網下載安裝程式

https://git-scm.com/download/win

初始設定(第一次使用必做)

# 設定使用者名稱
git config --global user.name "Your Name"
# 設定 Email
git config --global user.email "you@example.com"
# 設定預設編輯器(以 VSCode 為例)
git config --global core.editor "code --wait"
# 確認設定
git config --list

🚀 基本工作流程

Git 的核心工作流程可以用以下步驟理解:工作區 → 暫存區 → 本地儲存庫 → 遠端儲存庫

1️⃣ 初始化專案

# 在現有資料夾初始化 Git
git init
# 或是從遠端 clone 一個專案
git clone https://github.com/user/repo.git
# clone 並指定資料夾名稱
git clone https://github.com/user/repo.git my-project

2️⃣ 查看狀態與差異

# 查看目前狀態(哪些檔案被修改/新增)
git status
# 查看具體修改內容
git diff
# 查看已暫存的差異
git diff --staged
# 查看提交歷史
git log
# 精簡版 log(每筆一行)
git log --oneline --graph --all

3️⃣ 加入暫存區(Stage)

# 加入特定檔案
git add index.html
# 加入特定資料夾
git add src/
# 加入所有變更
git add .
# 互動式選擇要加入的內容
git add -p

4️⃣ 提交(Commit)

# 提交並附上訊息
git commit -m "feat: 新增使用者登入功能"
# 一次完成 add + commit(已追蹤的檔案)
git commit -am "fix: 修正登入驗證邏輯"
# 修改上一筆 commit 訊息
git commit --amend -m "新的 commit 訊息"

💡 Commit 訊息建議格式:
feat: 新功能 fix: 修正錯誤 docs: 文件更新 refactor: 重構 chore: 雜務


🌿 分支管理(Branch)

分支是 Git 最強大的功能之一,讓你可以在不影響主線的情況下開發新功能。

建立與切換分支

# 列出所有本地分支
git branch
# 列出所有分支(包含遠端)
git branch -a
# 建立新分支
git branch feature/login
# 切換分支
git checkout feature/login
# 建立並立即切換(推薦方式)
git checkout -b feature/login
# Git 2.23+ 新語法
git switch -c feature/login
# 刪除分支
git branch -d feature/login
# 強制刪除(未合併的分支)
git branch -D feature/login

合併分支(Merge)

# 切換回主分支
git checkout main
# 將 feature/login 合併進來
git merge feature/login
# 保留分支歷史的合併(no fast-forward)
git merge --no-ff feature/login
# 取消合併(發生衝突想放棄)
git merge --abort

Rebase(進階)

# 將目前分支 rebase 到 main
git rebase main
# 互動式 rebase(整理 commit 歷史)
git rebase -i HEAD~3
# 取消 rebase
git rebase --abort
# 繼續 rebase(解決衝突後)
git rebase --continue

☁️ 遠端協作(Remote)

# 查看遠端設定
git remote -v
# 新增遠端(通常叫 origin)
git remote add origin https://github.com/user/repo.git
# 推送到遠端(第一次需要 -u 設定追蹤)
git push -u origin main
# 之後只需要
git push
# 拉取並合併最新變更
git pull
# 只拉取不合併(fetch)
git fetch origin
# 推送新分支到遠端
git push origin feature/login
# 刪除遠端分支
git push origin --delete feature/login

🔧 常見狀況處理

😱 處理衝突(Conflict)

當兩個分支都修改了同一個地方,Git 無法自動合併時就會發生衝突。衝突的檔案會出現以下標記:

<<<<<<< HEAD
這是你目前分支的內容
=======
這是要合併進來的內容
>>>>>>> feature/login

解決步驟:手動編輯檔案,保留正確內容,刪除標記符號,然後:

git add 衝突的檔案
git commit -m "fix: 解決合併衝突"

⏪ 回滾與還原

# 撤銷工作區的修改(還原到上次 commit)
git checkout -- index.html
# 取消暫存(從 stage 移出)
git reset HEAD index.html
# 回到上一個 commit(保留修改)
git reset --soft HEAD~1
# 回到上一個 commit(清除修改)⚠️ 危險操作
git reset --hard HEAD~1
# 安全地撤銷某個 commit(新增一筆反向 commit)
git revert abc1234

📦 暫存工作(Stash)

需要臨時切換分支,但目前工作還沒完成?用 stash 暫存起來!

# 暫存目前所有修改
git stash
# 暫存並附上說明
git stash push -m "進行到一半的登入功能"
# 列出所有 stash
git stash list
# 取出最近一筆 stash
git stash pop
# 取出指定的 stash
git stash apply stash@{2}
# 刪除所有 stash
git stash clear

📄 .gitignore 設定

不是所有檔案都需要納入版本控制。在專案根目錄建立 .gitignore 檔案,指定要忽略的檔案:

# 忽略 node_modules
node_modules/
# 忽略環境變數檔案
.env
.env.local
# 忽略編譯產出
dist/
build/
# 忽略 IDE 設定
.vscode/
.idea/
# 忽略 macOS 系統檔
.DS_Store
# 忽略 log 檔
*.log

⚡ 實用指令速查表

指令說明
git init初始化 Git 儲存庫
git clone <url>複製遠端儲存庫
git status查看目前狀態
git add .加入所有變更到暫存區
git commit -m "msg"提交並附上訊息
git push推送到遠端
git pull拉取最新變更
git branch -b <name>建立並切換分支
git merge <branch>合併分支
git log --oneline精簡查看提交歷史
git stash暫存目前修改
git reset --hard HEAD~1⚠️ 強制回到上一版

🎯 結語

Git 一開始看起來很複雜,但核心工作流程其實只有幾個指令:add、commit、push、pull。建議從這四個開始練習,熟悉後再慢慢掌握分支與進階功能。

你目前使用 Git 最常遇到的問題是什麼?歡迎在下方留言討論!👇

發表迴響

探索更多來自 星方向 AI 學院 - 部落格 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

繼續閱讀