Vercel 協同合作注意事項
AI 文章延伸
選擇平台後可直接帶入閱讀脈絡,快速整理重點、補齊盲點,並延伸到同站相關文章。
Vercel 是一個專為前端框架優化的雲端部署平台,支援 Next.js、Astro、Nuxt 等主流框架。它最大的優勢是推 code 到 GitHub 就能自動部署,省去自己架設 CI/CD 的麻煩,對小團隊來說非常方便。
我們團隊最近有個 Next.js + Payload CMS 的專案就部署在 Vercel 上。結果同事推了一筆 commit 到 main,Vercel 沒有開始 build,而是直接顯示紅色的 Deployment Blocked:
The Deployment was blocked because the commit author does not have contributing access to the project on Vercel.

團隊有兩個人,我是 Vercel project owner,同事負責前端功能開發。這次他推了一個產品頁面的改版,結果部署直接被擋。
以下是完整的排查過程。結論先講:問題出在 Vercel 帳號的 GitHub Login Connection 沒有正確綁定。但為了找到這個答案,我們繞了不少路:
第一個懷疑:git commit email 不對
用 git log 檢查 commit 記錄,發現同事的 author email 是:
[email protected]
這是 macOS 的預設值,不是真正的 email。Vercel 透過 commit author email 來辨識「這筆 commit 是誰提交的」,一個本機名稱它當然對不上任何帳號。
請同事修正 git 設定:
git config user.email "[email protected]"
git commit --amend --reset-author --no-edit
git push --force-with-lease
修正之後到 GitHub 確認,commit author 確實變成 [email protected] 了。
結果 Vercel 還是擋。
第二個懷疑:沒有加入 Vercel team
點了 Deployment Blocked 旁邊的 Invite User 按鈕,彈出的對話框自動帶入 [email protected],但底下顯示紅字:

[email protected] is already a member of this team.
所以不是沒邀請的問題。

第三個嘗試:Redeploy
既然 commit email 修了、team member 也加了,那 Redeploy 舊的 deployment 應該可以吧?

Vercel 直接告訴你:This deployment can not be redeployed. Please try again from a fresh commit. 被 block 的 deployment 不能 redeploy。
第四個嘗試:推空 commit
既然需要 fresh commit,請同事推了一個空 commit:
git commit --allow-empty -m "chore: trigger deploy"
git push

新的 deployment 出現了,commit 是 10fa857 chore: trigger deploy,author 確實是 [email protected]。
還是 Blocked。
到這裡我開始覺得不是 git 端的問題了。
回到 Vercel 官方文件
翻了 Vercel 的 Troubleshoot project collaboration 頁面,找到幾個關鍵資訊:
Hobby plan 不支援 private repo 的多人協作。 只有 project owner 的 commit 才能觸發部署。
先確認我們的 plan — 左上角顯示 Pro Trial,不是 Hobby。排除這個可能性。

Pro team 的要求是:
- Contributors 的 Vercel 帳號必須連結 git provider(在 Account Settings → Login Connections)
- 檢查 team 的 collaboration settings 是 auto approve 還是 manual approve
- 如果是 manual approve,owner 需要手動核准
同事的 Vercel 帳號確實看得到 oberonlai's projects 這個 team,角色是 Member:

真正的問題:Login Connections
前面所有排查都指向同一個方向:Vercel 知道同事是 team member,但無法把 git commit 的 author 對應到他的 Vercel 帳號。
問題出在 Vercel Account Settings 的 Login Connections。

同事雖然用 GitHub 帳號登入 Vercel,但 Login Connections 裡面的 GitHub 綁定狀態不正確。Vercel 需要透過這個綁定來建立「GitHub 帳號 ↔ Vercel 帳號」的對應關係。沒有這層對應,即使 commit email 一致、team member 也加了,Vercel 還是無法確認「這筆 commit 是我們 team 的人推的」。
請同事到 Account Settings → Login Connections 重新連結 GitHub 帳號後,再推一次 commit,部署就正常通過了。
排查過程的回顧
這次除錯花了大約一個小時,走過的路整理如下:
| 嘗試 | 結果 | 原因 |
|---|---|---|
| 修正 git commit email | 還是被擋 | email 只是必要條件,不是充分條件 |
| 確認 team member | 已是成員 | team membership 跟 commit 辨識是兩件事 |
| Redeploy | 不允許 | blocked deployment 無法 redeploy |
| 推空 commit | 還是被擋 | 根本問題沒解決,新 commit 一樣被擋 |
| 檢查 plan | Pro Trial | 排除 Hobby plan 限制 |
| 檢查 Login Connections | 未正確綁定 | 根因找到 |
結論
Vercel 判斷 commit author 是否為 team member 的邏輯是這樣的:
- 從 git commit 取得 author email
- 透過 git provider(GitHub)找到對應的帳號
- 檢查這個帳號是否在 Vercel 的 Login Connections 中綁定了某個 Vercel 帳號
- 確認該 Vercel 帳號是否為 project 所屬 team 的成員
第三步是最容易被忽略的。「用 GitHub 登入 Vercel」和「在 Vercel 帳號的 Login Connections 綁定 GitHub」看起來像同一件事,但 Vercel 內部的處理可能不同。如果你遇到相同的錯誤訊息,建議直接從 Login Connections 開始檢查,能省下不少繞路的時間。