Skip to content

Git 入門:用搬家打包的比喻,學會叫 AI Agent 幫你存檔、備份

Git basics cover: use a moving-boxes metaphor to have an AI agent commit and push your work
跟 AI Agent 協作不用自己打 Git 指令,但要看得懂它在做什麼。用搬家打包的比喻搞懂 Git 核心觀念,整理 status、diff、commit、push、pull、log 該怎麼跟 AI 說,附一份基礎 .gitignore 安全清單。

📌目錄

跟 AI Agent 協作久了,你一定看過它回報「已 commit」「已 push 到 GitHub」。這些指令你不用會打,但要看得懂:它幫你存了什麼、存到哪裡、出事時能不能回得去。

這篇不教你背指令。

你只要搞懂 Git 在做什麼,為什麼你一定得學「版本管理控制」。
然後你只要學會用中文交代給 AI,把打指令的事交給你的 AI 員工。

最後附上一份基礎 .gitignore 安全清單,每一行都有白話說明,可以直接複製去用。


一張圖看懂 Git:搬家打包的四個地方

Git 的四個地方:工作區、暫存區、存檔點、GitHub,用搬家打包比喻說明 add、commit、push、pull

把 Git 想成搬家,東西會依序待在四個地方:

  1. 工作區:家裡散落一地的東西,也就是你和 AI 正在改、還沒存檔的檔案。
  2. 暫存區(add):挑出這次要帶走的,放進紙箱。不想帶的留在外面。
  3. 存檔點(commit):封箱,在箱子上寫標籤「這箱裝了什麼」。之後隨時能翻回這一箱。
  4. GitHub(push/pull):把箱子搬到雲端倉庫;換電腦或有人更新時,再從倉庫搬回來。
commit 是存檔,push 才是備份。 
只 commit 沒 push,箱子還在你電腦裡,電腦壞了就一起不見。

你不用打指令,但要會這樣跟 AI 說

叫 AI 做 Git,重點不是記指令,而是講清楚你要什麼結果。日常會用到的就這六個:

  1. 看哪些東西還沒存(git status):
    跟 AI 說「目前哪些檔案改了、還沒存檔?」存檔前先盤點,避免把不該帶的一起打包。
  2. 看改了什麼(git diff):
    跟 AI 說「用白話告訴我這次改了什麼」。
    別完全相信 AI 說「改好了」,因為改好不等於改對,Review 跟負責的責任在你身上。
  3. 存檔(git add + git commit):
    跟 AI 說「幫我存檔,訊息寫清楚做了什麼」,留下一個隨時能回去的存檔點。
  4. 備份到雲端(git push):
    跟 AI 說「推上 GitHub」。
    當電腦壞了、換電腦,東西都還在。
  5. 同步最新版(git pull):
    跟 AI 說「開工前先抓 GitHub 上的最新版」。
    兩台電腦或跟人協作時,才不會在舊版本上改。
  6. 翻存檔紀錄(git log):
    跟 AI 說「列出最近 10 次存檔,各做了什麼」。
    想找回某一版,或回顧做過哪些事。

📍 健康工作節奏:開工同步、收工存檔

一天的 Git 節奏:開工 pull、工作中讓 AI 改檔、收工前 status 與 diff、收工 add commit push

收工那三步,其實可以一句話交代完:

「收工了。先告訴我今天改了哪些檔案、各改了什麼;確認沒有 .env 或金鑰檔之後,幫我存檔並推上 GitHub。」

AI 會依序跑 git status、git diff、git add、git commit、git push,你只要看它回報的清單、點頭就好。如果每天都這樣做,可以直接把「開工先 pull、收工前先給我看改了什麼再 push」寫進 AI 的規則檔(CLAUDE.md 或 AGENTS.md),之後就不用每次重講。


.gitignore:打包時的「不帶走清單」

搬家打包時,有兩種東西你不會隨便塞進紙箱:垃圾(又肥又沒用)和機密(帶出去會出事)。

.gitignore 就是貼在門口的不帶走清單:放在專案最外層、檔名就叫 .gitignore 的純文字檔。清單上列的檔案,Git 打包時會自動跳過。要建立它,跟 AI 說一句就好:

「幫我在這個專案建立 .gitignore,擋掉金鑰、密碼檔和不需要上傳的大檔案,每條規則上面用一行中文說明它在擋什麼。」

為什麼這跟資訊安全有關?

因為 Git 存的不只是「現在的檔案」,而是整個歷史。

API 金鑰一旦 commit 上去,就算你下一秒刪掉再存一次,金鑰還是留在過去的存檔點裡,任何拿到這個 repo 的人翻舊紀錄都看得到。如果 repo 是公開的,等於把家裡鑰匙釘在路邊電線桿上。

所以鐵則是:開新專案的第一件事,就是先放 .gitignore,不要等檔案已經推上雲端才想到。

直接可抄的基礎安全範本

說明文字一定要自己占一行。 .gitignore 不認「規則後面接 # 說明」的寫法。寫成 .env # 說明,Git 會去找一個檔名叫 .env # 說明 的檔案,整條規則失效,.env 照樣被上傳。AI 幫你寫的時候也要照這個格式。

下面是開新專案最基本的「防外洩」和「防垃圾」兩類,直接複製貼進你的 .gitignore 即可:

# ═══ 機密類(最重要,洩漏會直接出事)═══
# 環境變數檔:API 金鑰、密碼都集中放這裡,絕對不能上傳
.env
# .env 的各種變形(.env.local、.env.production)一起擋掉
.env.*
# 唯一例外:範例檔(只有欄位名稱、沒有真金鑰)可以上傳,給協作者參考
!.env.example
# 憑證私鑰檔(SSH、SSL 連線用),等於你家大門鑰匙
*.pem
# 各種金鑰檔,同上
*.key
# secrets.json、secrets.yaml 這類放機密的檔案,一律不帶走
secrets.*

# ═══ 垃圾類(上傳了不會出事,但又肥又沒意義)═══
# npm 套件庫,動輒上 GB;協作者自己跑 npm install 就有
node_modules/
# build 出來的成品;原始碼在,隨時能重新產生
dist/
build/
# Python 執行時自動產生的快取
__pycache__/
# 程式執行日誌,只對你自己 debug 有意義
*.log
# macOS 與 Windows 自動生成的資料夾設定檔、縮圖快取
.DS_Store
Thumbs.db
desktop.ini

其他語言或框架的模板,可以參考 GitHub 官方維護的 github/gitignore。

三個一定要知道的坑

  1. .gitignore 只擋「還沒存過」的檔案。 已經 commit 過的檔案,事後加進清單擋不住,要請 AI 把它移出追蹤:「.env 之前已經被存進 Git 了,幫我從 Git 追蹤中移除,但保留電腦上的檔案」(背後是 git rm --cached)。如果它已經推上 GitHub,裡面的金鑰要當作外洩,馬上到服務後台作廢、換一把新的。
  2. .gitignore 不是保險箱。 它只防「被上傳」,不防「在你電腦裡被讀取」。AI Agent 在本機一樣讀得到被忽略的 .env,2026 年就有 AI Agent 自己翻到一把權限過大的 token,拿去把公司正式資料庫刪掉1。上傳是一道鎖,本機權限是另一道鎖。
  3. 存檔前先看清單,不要讓 AI 無腦全部打包。 git add . 會把所有改動一次裝箱。請 AI 存檔前先列出要存的檔案,看到 .env、.key、credentials 這類字眼就先停下來確認。

常見問題

不用。用中文請 AI 做就好,你只要知道 commit 是存檔、push 是備份到雲端、pull 是同步最新版,看得懂 AI 回報的內容就夠了。

Git 是存檔工具,跑在你電腦上;GitHub 是放這些存檔的雲端倉庫。只用 Git 也能存檔,但兩個一起用,你的東西才有雲端備份,換電腦也接得上。

寫「具體做了什麼」,未來翻紀錄的你會感謝現在的你。可以直接跟 AI 說「訊息寫清楚這次改了什麼」。好的寫法像「修好登入按鈕點了沒反應」「新增會員頭像上傳」;不好的寫法是「update」「fix」「1111」。

跟 AI 說「push 失敗了,先告訴我原因,不要強制推送」。最常見的原因是雲端有比較新的版本(例如你在另一台電腦推過),AI 會先 pull 把最新版拉回來,確認沒有衝突再 push。不要讓 AI 用強制推送(force push),它會把雲端上別人或另一台電腦的紀錄蓋掉。

可以,這就是存檔點的用處。跟 AI 說「列出最近的存檔紀錄,我想把這個檔案恢復到昨天的版本,動手前先告訴我會影響什麼」。前提是你有存檔:沒 commit 過的改動,Git 也救不回來。


📍 AI Agent(Claude Code、Codex)系列教學文章


延伸閱讀&內容註腳


  1. Railway 官方部落格〈Your AI wants to nuke your database. Guardrails fix that.〉:2026 年 4 月,PocketOS 用的 AI 程式助理在本機找到一把 Railway API token,一個 API 呼叫就刪掉正式資料庫與備份;事後 Railway 協助救回資料,並加上刪除保護。 ↩︎
分享本文:

關於作者

留言回應

訂閱
接收通知
guest
0 留言
最新的留言
最舊的留言 Most Voted