為什麼昨天還好好的,今天突然整個網站大當機?

當你順利把專案推上 Vercel,並且綁定了超帥的專屬網域後,你可能會覺得自己已經天下無敵了。 隔天,你發現網頁上有個錯字,於是你在自己的電腦上改好了,開心地在終端機輸入: git commit -m "修正錯字" git push

結果五分鐘後,你的客戶打電話來狂飆:「為什麼網站點進去變成一片白畫面?!」 你嚇得趕快登入 Vercel 後台,發現最新的一筆部署紀錄上面亮著一顆大大的「紅燈 (Build Failed)」。

這就是在現代 DevOps (開發與維運一體化) 中最常遇到的噩夢。 我們在第二章學過的魔法:CI/CD (持續整合 / 持續部署)。當你按下 Push 時,Vercel 會自動幫你打包上線。 但這把雙面刃的缺點是:「如果你 Push 了有問題的程式碼,你的網站就會在雲端上當眾死亡。」

這時候你該怎麼辦?


救命神技第一招:Vercel 的「時光倒流 (Rollback)」

遇到線上大當機,第一條鐵則:「先恢復原狀讓客人能用,再來慢慢抓蟲!」 不要在壞掉的線上環境慢慢修改程式碼,每一秒鐘都在流失金錢。

Vercel 提供了一個讓傳統工程師羨慕到流口水的功能:一秒回滾 (Instant Rollback)

  1. 登入 Vercel 後台,點進你的專案。
  2. 切換到上方的 Deployments (部署紀錄) 標籤。
  3. 這裡會列出你過去每一次 Push 的紀錄。最上面那個亮紅燈的,就是你剛剛搞砸的那一次。
  4. 往下看,找到上一筆 「綠色勾勾 (成功)」 的紀錄。
  5. 點擊該筆紀錄最右邊的三個點 ...
  6. 選擇 「Assign Custom Domain (指派自訂網域)」「Promote to Production (提升為正式機)」 (根據 Vercel 改版可能會有不同名詞,意思就是讓這個舊版本重新上線)。
  7. 不用一秒鐘,你的網站瞬間變回了昨天那個雖然有錯字、但至少能正常運作的版本!

客戶開心了,老闆不罵了。這時候你就可以安心地回到自己的電腦前,開始當偵探。


為什麼會失敗?學會看懂 Vercel 的 Build Logs

為什麼在你的電腦 (localhost) 上跑得好好的,推上 Vercel 就爆炸? 最常見的原因有兩個:

  1. 忘記設定環境變數:你在本機的 .env 加了新的資料庫密碼,但忘記去 Vercel 後台新增。
  2. TypeScript / ESLint 檢查沒過:Vercel 的把關非常嚴格。如果你的程式碼裡面有變數宣告了卻沒有使用,或是型別寫錯了,雖然你的電腦會「睜一隻眼閉一隻眼」讓你跑,但 Vercel 的雲端機器人會直接把你踢退!

Vibe Prompt 除錯法:讓 AI 幫你看紅字

不要自己去猜!點開 Vercel 那筆失敗紀錄的 Build Logs,你會看到一大坨黑底白字(混雜著紅字)的訊息。 把它全部複製下來,丟給 Cursor 的 AI:

【Vercel 部署失敗除錯 Prompt】 我將專案 Push 到 Vercel 時發生了 Build Failed。 這是 Vercel 的完整 Build Logs: [把剛剛複製的 Log 貼在這裡]

請問失敗的具體原因是什麼?是我忘了設定環境變數?還是語法檢查出錯? 請告訴我該如何修改程式碼,讓我能夠順利通過 Vercel 的編譯。

AI 通常會瞬間抓出兇手:「在你的 app/page.tsx 第 45 行,你有一個 user_id 沒有定義型別,導致 TypeScript 報錯被 Vercel 攔截。」 照著 AI 的指示改好,再 Push 一次,綠燈亮起!


終極大魔王:Git 衝突 (Merge Conflict)

當你開始跟別人一起合作(或是你自己換了一台筆電工作),你會遇到 Git 世界裡最可怕的怪獸:衝突 (Conflict)

情境是這樣的: 你昨天在公司的電腦,把首頁的按鈕改成了「紅色」,然後 Push 到 GitHub。 今天你在家裡用筆電,忘記先 git pull 把昨天公司改的最新進度抓下來,就直接打開專案,把首頁的同一個按鈕改成了「藍色」。 當你滿心歡喜地輸入 git push 時... 砰!

終端機噴出紅字:Merge conflict in src/app/page.tsx

這代表 GitHub 崩潰了。它不知道這個按鈕到底應該是昨天公司的「紅色」,還是今天家裡的「藍色」。所以它拒絕了你的上傳,並要求你自己決定。

如何解決衝突?Cursor 的神級輔助

如果你打開那個發生衝突的檔案 page.tsx,你會看到非常可怕的亂碼:

<<<<<<< HEAD
<button class="bg-blue-500">藍色按鈕 (家裡改的)</button>
=======
<button class="bg-red-500">紅色按鈕 (公司改的)</button>
>>>>>>> origin/main

在以前,工程師要手動把那些 <<<<==== 刪掉,非常容易把程式碼弄壞。 但在 Cursor IDE 中,當你點開這個檔案,畫面上會出現極度貼心的「按鈕選項」:

  1. Accept Current Change (保留目前家裡改的藍色)
  2. Accept Incoming Change (保留公司改的紅色)
  3. Accept Both Changes (兩個按鈕都要)

你只要輕鬆地點擊其中一個按鈕,Cursor 就會瞬間幫你把那些亂碼清乾淨,合併成完美的程式碼!

接著,你只要再次執行: git add . git commit -m "解決衝突" git push

衝突解除!危機化解!


結語:DevOps 大師之路

經過這五章的洗禮,你已經不僅僅是一個會寫程式的「碼農」了。 你掌握了現代軟體工業的標準配備:Git 版本控制、GitHub 雲端備份、Vercel 自動化部署、自訂網域綁定、以及線上災難救援機制

有了這些武器,你開發的不再是只能在自己電腦上孤芳自賞的玩具,而是隨時能夠面對千萬流量、商業級別的強大產品。 恭喜你完成本系列的部署課程!準備好向全世界大聲宣佈你的網站上線了嗎?

解鎖完整教學內容

本章為付費內容。加入專案即可解鎖超過 5000 字的深度解析,包含 10 個以上神級 Prompt 與真實 Source Code 範例!