The Problem
As usual, you write code locally, push it to GitHub
, and open the corresponding website domain in your browser, ready to verify if the new feature is working. However, you don't see the expected changes.
Did the build fail? You open the Vercel
console and check the Deployments
list, only to find no new deployment tasks have been generated.
So you switch back to GitHub
, and on the project's homepage, you notice a small red 'X' โ next to your Commits
from a few minutes ago.
Clicking on the Commits
history reveals that recent commit builds have all failed, except for one successful build.
Clicking the red 'X' โ to view the specific information, you see the message: Vercel - No GitHub account was found matching the commit author email address
.
Clicking Detail
redirects you to GitHub's help documentation, which instructs you to set your commit
email address.
You can use the git config command to change the email address you associate with your Git commits.
The new email address you set will be visible in any future commits you push to GitHub from the command line.
Any commits you made prior to changing your commit email address are still associated with your previous email address.
At this point, you might feel confused. You then try a manual deployment on the Vercel
website. When you enter the corresponding git
repository address and click deploy, it prompts: A commit author is required
.
The Cause
If your situation matches the description above, you need to confirm the following:
- Are you a
Hobby Plan
user? - Do you have multiple (at least two)
Vercel
accounts? - Is each
Vercel
account linked to the sameGitHub
account?
If all of the above conditions are met, then the problem lies here. Vercel's Hobby Plan
limits you to only one login connection per third-party service, meaning you can only have one GitHub
account linked. Refer to the official documentation for details.
Your Hobby team on Vercel can have only one login connection per third-party service.
For example, you can only log into your Hobby team with a single GitHub account.
In the community, other users have also discussed this issue, expressing similar confusion: "While this simplifies Vercel's job, it introduces workflow complexity for developers like us, who now need to create separate company GitHub accounts for each project and manage SSH keys, Git authentication, emails, and usernames. Additionally, Git clients and IDEs also require dual setup for personal and company GitHub accounts."
Furthermore, if you consult some AI
tools about this problem, you might get a suggestion like: "Set your Git commit email to match the email associated with your Vercel account," meaning the Git
commit email configured for your repository needs to be consistent with your Vercel
account email. They might also provide commands to configure the email in your repository.
You might have tried this approach. Initially, it seemed to workโmodifying the Git
configuration to replace the privacy-protected GitHub
assigned email (e.g., 121445xxx@users.noreply.github.com) with the email used for Vercel
registration. Subsequently pushing the code resulted in a successful build.
However, this method's effect lasted only once. In subsequent commits, the build failed again, still prompting:
No GitHub account was found matching the commit author email address.
This is why there was one successful build (green checkmark โ ) in the images above.
But this is not the ultimate solution and introduces more potential risks:
- โ Exposes the originally hidden email address, compromising privacy.
- โ Unstable build behavior, succeeding once then failing, making it harder to troubleshoot the cause.
Solution
Custom Deployment Workflow
Applicable if you:
- Only want to deploy multiple Vercel projects with one GitHub account.
- Are using multiple Vercel accounts linked to the same GitHub account.
- Don't want to expose source code to Vercel, only upload build artifacts.
- Prefer not to use GitHub/Vercel's default integration and instead control the entire deployment process via CLI.
Prerequisites:
Node.js
andnpm
are installed.Git
is installed (if used for version control).- A
Vercel
account is registered. Vercel CLI
is installed and logged in.- Your local project has successfully built (supports
Next.js
,React
,Vue
, etc.).
Steps
- Install
vercel CLI
If you have poor network conditions, you can temporarily enable Taobao's npm
mirror in the terminal:
# This only affects the current terminal session
export NPM_CONFIG_REGISTRY=[https://registry.npmmirror.com](https://registry.npmmirror.com)
npm install -g vercel@latest
- Log in to
Vercel
# Command
vercel login
# 1. Choose login method
Vercel CLI 44.4.0
? Log in to Vercel (Use arrow keys)
โฏ Continue with GitHub
Continue with GitLab
Continue with Bitbucket
Continue with Email
Continue with SAML Single Sign-On
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Cancel
# 2. Choose email login
? Log in to Vercel Continue with Email
? Enter your email address:
# 3. Wait for confirmation
We sent an email to xx@gmail.com. Please follow the steps provided inside it and make sure the security code matches Sparkling Dachshund.
โ Waiting for your confirmation
# 4. Success message after login
> Success! Email authentication complete for xx@gmail.com
Congratulations! You are now logged in. In order to deploy something, run `vercel`.
๐ก Connect your Git Repositories to deploy every branch push automatically ([https://vercel.link/git](https://vercel.link/git)).
If you're using a Google
email, you can select Continue with Email
, enter the email you registered with Vercel
, open your browser email, receive the verification email, open the link in the email, and enter the security code from the email. Your browser will automatically redirect to the terminal to complete the login.
? Log in to Vercel email
? Enter your email address: xxx@gmail.com
We sent an email to xxx@gmail.com. Please follow the steps provided inside it and make sure the security code matches Pragmatic Arctic Fox.
โ Waiting for your confirmation
Notes on Vercel CLI
Login
- Effective across terminal sessions: The token generated after login is saved in the local configuration. Even if you close and reopen the terminal, the login status remains active.
- Global effect: Using Vercel CLI in any directory will utilize the same login status.
- Long-term validity: The token does not expire immediately and can be used continuously.
Token expiration mechanism:
- If Vercel CLI is not used for 10 days, the token will automatically expire.
- Upon expiration, you'll see an error message:
Error! The specified token is not valid
. - You'll need to run
vercel login
again to obtain a new token.
How to maintain login status:
- Use any Vercel CLI command at least once every 10 days.
- Any Vercel CLI command can reset this 10-day timer.
- Create a
token
Visit https://vercel.com/account/settings/tokens, click Create Token
, enter a Token Name
, and click Create
to create a token for deployment.
For security reasons, the Token
needs to be saved separately; Vercel
only displays it at creation and it cannot be viewed later.
โ ๏ธ Note: Do not commit VERCEL_TOKEN
to your Git repository. It's recommended to manage it using .env
with .gitignore
.
- Link Project
Linking your local directory to a Vercel Project
using vercel link
is a crucial step for binding your current directory to a remote project.
If vercel deploy
is executed without vercel link
beforehand, it might prompt you to create a new project or select a project scope, potentially leading to incorrect linking or duplicate project creation.
# Command
vercel link
# Output
Vercel CLI 44.4.0
# 1. Confirm local directory
? Set up โlocal-directoryโ? yes
# 2. Which scope should contain your project? Select the project you need to link
? Which scope should contain your project? xxx projects
# 3. Link to existing project, yes
? Link to existing project? yes
# 4. Enter the `vercel project` command
? Whatโs the name of your existing project? xxx
โ
Linked to xxx (created .vercel)
In .vercel/project.json
, you can see the mapping information.
- Pull relevant configurations from remote
Execute the following command in the project's root directory. vercel pull
is a critical command for syncing remote project configurations and environment variables to your local machine.
# Command
vercel pull --yes --environment=preview --token=your-token
# Output
Vercel CLI 44.4.0
> Downloading `preview` Environment Variables for xxx
โ
Created .vercel/.env.preview.local file [290ms]
> Downloading project settings
โ
Downloaded project settings to ~/xxx/.vercel/project.json [0ms]
This will overwrite the local project.json
. Note that .vercel
should not be committed to the source code repository.
- Build local artifacts
# Command
vercel build --token=xxx
# Output
Vercel CLI 44.4.0
...
Done in 974ms using pnpm v10.13.0
Detected Next.js version: 15.3.4
Running "pnpm run build"
> xxx@0.1.0 build /xx
> next build
โฒ Next.js 15.3.4
- Environments: .env.production
Creating an optimized production build ...
...
...
โ (Static) prerendered as static content
โ (SSG) prerendered as static HTML (uses generateStaticParams)
Notice: detected `next export`, this de-opts some Next.js features
See more info: [https://nextjs.org/docs/advanced-features/static-html-export](https://nextjs.org/docs/advanced-features/static-html-export)
โ
Build Completed in .vercel/output [2m]
This will perform a local build and create an output
directory within .vercel
.
- Deploy preview version
# Command
vercel deploy --prebuilt --token=xxx
# Output
Vercel CLI 44.4.0
๐ Inspect: [https://vercel.com/xxx](https://vercel.com/xxx) [6s]
โ
Production: [https://xxx.vercel.app](https://xxx.vercel.app) [6s]
2025-07-11T12:43:40.938Z Running build in Washington, D.C., USA (East) โ iad1
2025-07-11T12:43:40.939Z Build machine configuration: 2 cores, 8 GB
2025-07-11T12:43:40.953Z Retrieving list of deployment files...
2025-07-11T12:43:41.064Z Previous build caches not available
2025-07-11T12:43:41.283Z Downloading 111 deployment files...
2025-07-11T12:43:42.292Z Using prebuilt build artifacts...
2025-07-11T12:43:42.325Z Deploying outputs...
๐ Deployed to production. Run `vercel --prod` to overwrite later ([https://vercel.link/2F](https://vercel.link/2F)).
๐ก To change the domain or build command, go to [https://vercel.com/xxx/settings](https://vercel.com/xxx/settings)
This will create a Preview
release that can be deployed on Vercel
.
- Deploy production version
vercel --prod
This will deploy to the production environment, and a deployment record will appear in Deployment
.
๐ Scripting Deployment in package.json
After completing all the configurations above, for long-term convenience, you can place the build
and deploy
commands in package.json
for future use:
{
"scripts": {
"vercel:deploy": "vercel build && vercel --prod"
}
}
This covers how to circumvent the GitHub
account binding issue using Vercel CLI
, without relying on third-party CI/CD Providers
.
You can continue to use the same GitHub
account to manage your source code.
If you want automatic deployments upon push
, you would need to integrate a DevOps platform
.
Alternatively, if you still prefer automatic deployments on GitHub
commits, you might need to register a separate GitHub
account to link to different Vercel
accounts, while also managing SSH Key
s locally.