git status
查看目前工作目錄與暫存區狀態,確認哪些檔案已修改、已暫存或未追蹤。
git status
Git 是一套分散式版本控制系統,用來追蹤檔案變更、保存歷史版本、支援多人協作與快速回復錯誤。它通常搭配 GitHub、GitLab 或 Bitbucket 等遠端服務使用。
git --version
安裝完 Git 之後,最先做的是設定使用者名稱與 Email。這會寫進每一筆 commit 紀錄中。
git --version
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --list
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
你可以在現有專案資料夾中執行 git init,或從遠端複製既有專案使用 git clone。
mkdir git-demo
cd git-demo
git init
echo "# Git Demo" > README.md
git status
Git 最基本的日常操作,就是查看狀態、把變更加入暫存區、建立提交,然後用 log 或 diff 追蹤歷史與差異。
查看目前工作目錄與暫存區狀態,確認哪些檔案已修改、已暫存或未追蹤。
git status
把檔案加入暫存區,準備建立 commit。可單檔加入,也可一次加入全部變更。
git add README.md
git add .
建立一筆可追蹤的版本快照。訊息要具描述性,例如修正登入頁驗證、補上購物車 API。
git commit -m "初始化專案與 README"
git diff
git log --oneline --graph --decorate --all
分支可以讓你安全地開發新功能,不影響主線。完成後再合併回主分支,是團隊協作的關鍵工作模式。
git branch
git switch -c feature/navbar
git branch
git switch main
git merge feature/navbar
git switch feature/navbar
git rebase main
Git 在本機管理版本;當你需要分享、備份、發 PR、團隊合作時,就會把專案連到遠端儲存庫。
git remote add origin https://github.com/yourname/git-demo.git
git push -u origin main
git fetch origin
git pull origin main
把遠端專案完整下載到本機,包含歷史紀錄與分支資訊。
git clone https://github.com/user/project.git
把本機提交推送到遠端,通常在功能開發完成後使用。
fetch 是先下載更新;pull 則會抓取後直接合併到目前分支。
Git 強大的另一面是「救援能力」。當你做錯事時,通常都能找到回頭路,但要分清楚每個指令的適用情境。
還原工作目錄中的未提交修改,適合放棄局部變更。
git restore app.js
暫時收起尚未完成的修改,先切換工作去處理其他分支或緊急修正。
git stash
git stash list
git stash pop
reset 偏向移動歷史指標,revert 則建立一筆「反向 commit」,較安全。
git revert HEAD
git reset --hard 會直接丟棄變更;若你尚未理解其影響,不建議在共享分支隨意使用。
真正的工作現場不是只有一個人 commit,而是多人分支開發、同步遠端、發起 Pull Request、Code Review、處理衝突與發版。
feature/payment、fix/navbar-overlapgit push -u origin feature/payment 建立遠端追蹤分支。feature/*、fix/*、hotfix/*、docs/*、refactor/*
feat: 新增商品篩選功能、fix: 修正手機版導覽列重疊
以下範例特別為了讓這個網站比一般基礎教程更實用,模擬你在真實開發中最常遇到的情境。
git switch main
git pull origin main
git switch -c feature/login-page
# 編輯檔案
git add .
git commit -m "feat: 完成登入頁版型與驗證"
git push -u origin feature/login-page
git switch main
git pull origin main
git switch -c hotfix/payment-timeout
# 修正 timeout bug
git add .
git commit -m "fix: 修正付款逾時導致訂單卡住"
git push -u origin hotfix/payment-timeout
git switch main
git merge feature/login-page
# 若有 conflict,手動編輯檔案後
git add .
git commit -m "merge: 解決 login page 與 main 的衝突"
如果你要做的是專業級教學網站,建議把入門內容之外,再擴充一些較高價值主題,像是 tag、reflog、bisect、submodule、hooks、Git internals。
標記特定版本,例如 v1.0.0,方便發版與追蹤正式上線版本。
git tag -a v1.0.0 -m "正式版 v1.0.0"
git push origin v1.0.0
查看 HEAD 的移動紀錄,很多「以為回不來」的操作都能靠 reflog 找回來。
透過二分搜尋快速找到是哪一筆 commit 引入 bug,非常適合排查回歸問題。
在 commit 或 push 前自動執行 lint、test 或其他檢查,提升團隊品質控管。
把另一個 Git 專案作為子模組引入,適合大型專案或共用元件庫。
了解 objects、refs、packfiles、plumbing vs porcelain,會幫你更深刻理解 Git。
把常用情境整理成一眼就能查的速查表,學習與實務都很好用。
git init:初始化新儲存庫git clone URL:複製遠端專案git config --list:查看設定git status:查看狀態git add .:加入暫存區git commit -m "msg":建立提交git log --oneline:精簡歷史git diff:查看差異git show HASH:檢視某筆提交git switch -c feature/x:建立並切換分支git merge branch:合併分支git rebase main:重整歷史git remote -v:查看遠端git push -u origin main:首次推送git pull origin main:同步主分支git restore file:還原檔案git stash:暫存工作現場git revert HEAD:回復最近一次提交這些是初學者與團隊最常卡住的問題,你可以直接放進網站中作為 FAQ 模組。
git fetch 只會抓取更新,不會自動合併;git pull 則是 fetch + merge(或 rebase,視設定而定)。讓學習不只是閱讀,也能即時驗證你是否真的理解指令用途。
可放在網站底部當速查區,方便新手快速理解常見名詞。
Git 儲存庫,保存專案檔案與完整版本歷史。
一次版本快照,記錄當下變更與說明訊息。
一條獨立開發線,讓你安全開發新功能。
把另一條分支的變更整合進目前分支。
重整提交基底,讓歷史線性化。
遠端儲存庫,如 GitHub、GitLab、Bitbucket。