Vibe Coder

版本控制不可怕:AI 改壞了,一個指令救回來

Git 讓你隨時能回到任何一個「程式還在運作」的時間點:功能做完就 commit,AI 改壞了一個指令就能回到上一個正常狀態。搭配 .gitignore 把 .env 排除在外,是防止 API Key 洩漏的第一道防線。
版本控制不可怕:AI 改壞了,一個指令救回來

版本控制不可怕:AI 改壞了,一個指令救回來

想像你在寫一份重要文件,每隔一段時間你會另存新檔。Git 做的是同一件事,只是更聰明:它只記錄每次的差異,不是整份複製,而且每個版本都有說明、有時間戳,還可以命名。對 Vibe Coder 來說,Git 最重要的一個功能是:隨時能回到任何一個「程式還在運作」的時間點。AI 改壞了?一個指令回去。新功能搞砸了?一個指令回去。這是 Vibe Coding 最重要的安全網。

你將學到什麼

三個核心概念

repo、commit、branch 是什麼,先懂這三個就夠用。

基本工作流

init、add、commit、log 四步驟養成存檔習慣。

.gitignore 安全守則

API Key 永遠不能上傳到 GitHub,這是最後一道防線。

AI 改壞了怎麼救

找到正常的 commit,一個指令回到那個時間點。

為什麼 Vibe Coder 必須學 Git

原因說明
AI 改壞了要能救AI 有時候會把你的程式改到面目全非,沒有版本控制,就只能靠 Ctrl+Z 到天黑。
每個里程碑都是快照功能做完就 commit,下次 AI 改壞了,一個指令回到上一個正常狀態。
API Key 安全的第一道防線.gitignore 防止敏感資訊上傳到 GitHub,這是最基本的資安習慣。
讓別人能接手你的專案有 Git 的專案,任何人都能 clone 下來、看到歷史、繼續開發。

核心概念:repo、commit、branch

概念說明類比
Repository(repo)一個專案的 Git 資料庫,記錄所有版本歷史整本相簿
Commit一次「存檔」動作,記錄這次改了什麼、為什麼改相簿裡的一張照片
Branch獨立的開發線,可以在不影響主線的情況下試驗新功能草稿本,滿意了才貼回去
Main / Master主要的分支,通常是「可以運作的版本」正式版相簿
Clone把遠端的 repo 複製一份到本機把別人的相簿印一份
Push / Pull把本機的更新推到遠端,或把遠端的更新拉回來上傳照片 / 下載照片

基本工作流

# 初始化:在專案資料夾建立 Git repo
git init

# 查看目前狀態:哪些檔案有變動
git status

# 把所有變動加入暫存區
git add .

# 存檔(commit),說明這次改了什麼
git commit -m "新增使用者登入功能"

# 查看版本歷史
git log --oneline

# 回到上一個 commit(AI 改壞時用這個)
git checkout HEAD~1
Commit 訊息怎麼寫格式:動詞加上做了什麼,例如「新增登入功能」、「修正密碼驗證 bug」、「移除未使用的套件」。不要寫「改了一些東西」或「update」,以後找問題時會後悔。

.gitignore 與安全守則

.gitignore 是一個文字檔,列出不要讓 Git 追蹤的檔案和資料夾。最重要的用途:防止 API Key 和敏感資訊被上傳到 GitHub。

# .gitignore(Vibe Coder 基本版)

# 環境變數(絕對不能上傳)
.env
.env.local
.env.production

# Python 虛擬環境
.venv/
__pycache__/
*.pyc

# Node.js 套件
node_modules/

# 系統檔案
.DS_Store
Thumbs.db

# IDE 設定(個人設定不需要讓別人看到)
.cursor/
API Key 洩漏是真實威脅GitHub 上每天都有人掃描新 commit,找裸露的 API Key。一旦 Key 上傳,幾分鐘內就可能被盜用,產生費用或資料外洩。即使你立刻刪掉,Git 歷史記錄裡還是有。正確做法:API Key 永遠放在 .env 檔案裡,用 os.getenv() 讀取;.env 永遠在 .gitignore 裡;如果不小心 commit 了,立刻 revoke 那個 Key,重新申請一個新的。

AI 改壞了怎麼救

  1. 確認最後一個正常的 commit:執行 git log --oneline,找到「功能還在運作」的那個 commit 的 hash(前七碼)。
  2. 回到那個版本:執行 git checkout HASH值,程式碼會回到那個時間點的狀態。
  3. 建立新 branch 繼續試:執行 git checkout -b fix/try-again,在新 branch 上重新嘗試,不影響主線。
C1C2C3C4commit 1commit 2commit 3(正常)commit 4(AI 改壞了)git checkout 回到 C3
AI 改壞了,用 git checkout 回到最後一個正常的 commit。

GitHub 入門

Git 是本機的版本控制工具,GitHub 是把 Git repo 放到網路上的平台,兩個東西不一樣,但通常一起用。

為什麼需要 GitHub說明
備份本機電腦壞了,GitHub 上還有完整記錄。
分享把專案連結給別人,他們可以直接看程式碼或 clone 下來。
部署Vercel、Railway 等平台可以直接連接 GitHub repo,自動部署。
  1. 在 github.com 建立帳號,點「New Repository」,輸入名稱,選「Private」(先不要公開),點「Create」。
  2. 複製 GitHub 給你的 HTTPS 連結,格式是 https://github.com/你的帳號/專案名稱.git
  3. 在本機專案資料夾執行指令,把本機 repo 連接到 GitHub。
  4. 之後每次 commit 完,只需要執行 git push 就能同步到 GitHub。
git remote add origin https://github.com/你的帳號/專案名稱.git
git branch -M main
git push -u origin main
IDE 內建 Git 介面Cursor 和 VS Code 左側有 Source Control 面板,可以用圖形介面做 add、commit、push,不用記指令。但建議先用終端機學一次,理解背後在做什麼,再用 GUI 提高效率。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

為什麼 Vibe Coder 一定要學 Git?
因為 AI 有時候會把程式改到面目全非,沒有版本控制只能靠 Ctrl+Z 到天黑。功能做完就 commit,下次 AI 改壞了,一個指令就能回到上一個正常狀態。
.gitignore 裡最重要要放什麼?
.env 一定要放進去,這是防止 API Key 上傳到 GitHub 的第一道防線。GitHub 上每天都有人掃描新 commit 找裸露的 Key,一旦上傳幾分鐘內就可能被盜用。
不小心把 API Key commit 上去了怎麼辦?
即使立刻刪掉,Git 歷史記錄裡還是有痕跡。正確做法是立刻 revoke 那個 Key,重新申請一個新的,而不是只把檔案刪掉。
AI 把程式改壞了,該怎麼救回來?
先用 git log --oneline 找到「功能還在運作」的那個 commit 的 hash,再用 git checkout 那個 hash 回到那個版本,也可以建立新 branch 繼續試,不影響主線。