Git 是分散式版本控制系統,核心概念:工作區 → 暫存區 → 本地倉庫 → 遠端倉庫。掌握基礎指令流即可應對 90% 日常場景。
# 1. 初始化倉庫
git init
# 2. 加入檔案到暫存區
git add filename # 單檔
git add . # 全部
# 3. 提交到本地倉庫
git commit -m "說明訊息"
# 4. 查看狀態/差異
git status
git diff filename
# 5. 版本回退與穿梭
git log --oneline # 精簡歷史
git reset --hard commit_id # 硬重設到指定版本
git reflog # 查看所有 HEAD 變動 (含已回退)
git reset --hard commit_id # 回到未來版本
| 情境 | 指令 |
|---|---|
| 僅在工作區 (未 add/commit) | git checkout -- filename |
| 已 add 到暫存區 | git reset HEAD filename → 再 checkout -- filename |
| 已 commit 到本地倉庫 | 按版本回退流程 git reset --hard |
| 已 push 到遠端 | 需強制推送 git push -f (謹慎,團隊協作需溝通) |
# 建立並切換分支
git checkout -b feature-x
# 等同於
git branch feature-x
git checkout feature-x
# 查看分支
git branch -v
# 合併分支到當前分支
git merge feature-x
# 刪除分支
git branch -d feature-x # 已合併
git branch -D feature-x # 強制刪除未合併
# 解決衝突:編輯衝突檔 → git add → git commit
git stash # 儲存並清空工作區
git stash list # 列出堆疊
git stash apply # 還原 (保留堆疊)
git stash pop # 還原並移除堆疊頂端
# 查看遠端資訊
git remote -v
# 推送本地分支到遠端
git push origin master
git push origin feature-x
# 抓取並合併遠端更新
git pull origin master
# 建立追蹤關係
git branch --set-upstream-to=origin/feature-x feature-x
# 克隆遠端倉庫
git clone url
# 建立標籤
git tag v1.0
git tag -a v1.0 -m "Release 1.0" # 附註標籤
# 查看/推送標籤
git tag
git push origin v1.0
git push origin --tags
最佳實踐: 功能開發用分支、提交前先pull --rebase、保持提交訊息清晰 (Conventional Commits)、定期清理已合併分支、保護master/main分支需 PR 審查合併。