Bolt.new includes built-in GitHub integration: connect your GitHub account in Settings, then push your entire project to a new or existing repository with one click. Bolt commits the full project state on each push. Version History (AI-generated changes) and Git history (explicit pushes) are separate systems. For team collaboration, teammates pull from GitHub and work in VS Code or Cursor, then push changes back for Bolt to consume.
Version Control and Team Collaboration with Git in Bolt.new
Bolt.new builds every project as a standard JavaScript or TypeScript codebase — a real Vite or Next.js project with a proper `package.json`, source files, and configuration. This means the code Bolt generates is Git-native from day one. The platform's built-in GitHub integration lets you push this code to GitHub without leaving the browser, turning your AI-generated project into a version-controlled repository that the rest of the development ecosystem can work with.
Understanding the two distinct history systems in Bolt prevents a lot of confusion. Bolt's Version History tracks every AI-generated change automatically — every prompt that modifies files creates a version you can roll back to. This is Bolt's internal undo system, separate from Git entirely. Git history, on the other hand, only records changes when you explicitly push to GitHub. Think of Version History as Bolt's autosave and Git as your deliberate checkpoint system. Both coexist independently; one does not replace the other.
The GitHub integration unlocks team collaboration. Once your project lives in a GitHub repository, teammates who prefer working in VS Code, Cursor, WebStorm, or any other IDE can clone the repo, make changes using their preferred tools, and push those changes back. Bolt can then pull those updates to stay synchronized. This hybrid workflow — Bolt for rapid AI-assisted development, traditional IDEs for complex debugging or refactoring — is how many teams use the platform in practice.
Integration method
Bolt.new has native GitHub integration built into the editor. Connect your GitHub account via OAuth in Settings, then use the Git panel to push your project to any repository on demand. Bolt packages the entire project file system into a single commit each time you push. Pulling changes from GitHub back into Bolt is supported for keeping the project in sync when teammates contribute code outside of Bolt.
Prerequisites
- A Bolt.new account (free or paid) with an active project
- A GitHub account (free at github.com)
- A project in Bolt that you want to version control
- Optionally: teammates with GitHub accounts who will contribute code outside Bolt
Step-by-step guide
Connect Your GitHub Account to Bolt
Connect Your GitHub Account to Bolt
Bolt.new's GitHub integration uses OAuth to connect your GitHub account. You authorize Bolt once, and it can create repositories and push code on your behalf from that point on. The connection is managed at the account level, so you only need to do this once regardless of how many Bolt projects you create. To connect: open your Bolt project, look for the Git icon in the left sidebar (it resembles a branching diagram), or access it through the Settings panel. Click 'Connect GitHub' — this redirects you to GitHub's OAuth authorization page. Review the permissions Bolt requests (typically: read your email address, create and manage repositories), then click 'Authorize bolt-new.' GitHub redirects you back to Bolt with the connection established. If you are part of a GitHub organization, you may need to grant Bolt access to that organization separately. On the OAuth authorization page, look for your organization names listed under 'Organization access' and click 'Grant' next to any organizations whose repositories you want to push Bolt projects to. Organization owners may need to approve the OAuth application first if organization OAuth policies are strict. Once connected, the Git panel in Bolt will show your GitHub username and offer repository management options.
Pro tip: If you manage multiple GitHub accounts (personal and work), make sure you authorize with the correct account. You can disconnect and reconnect from Bolt's Settings > Account if needed.
Expected result: The Git panel in Bolt shows your GitHub username and a 'Push to GitHub' button. The connection indicator turns green.
Push Your Project to a GitHub Repository
Push Your Project to a GitHub Repository
With GitHub connected, you can push your Bolt project to a repository. Bolt gives you the choice to create a new repository or push to an existing one. For new repositories, you choose the name, visibility (public or private), and optionally a description. Bolt creates the repository in your GitHub account and pushes the entire project in a single initial commit. Click 'Push to GitHub' in the Git panel, select 'Create new repository,' enter a repository name (GitHub requires lowercase letters, numbers, and hyphens — no spaces), choose public or private, and click 'Create and push.' Bolt packages all your project files into a Git commit with a default message like 'Initial commit from Bolt.new' and pushes to the main branch. The push typically completes in 10-30 seconds depending on project size. For pushing to an existing repository, select 'Push to existing repository' and choose from the list of repos in your connected GitHub account. This is useful if you started the project outside Bolt and want to push Bolt-generated changes back. Important: Bolt always pushes to the default branch (usually main or master). If you want to push to a feature branch, you will need to do that after downloading the project and using git commands locally, or through GitHub's web interface. Each subsequent push from Bolt creates a new commit on the same branch. The commit message is auto-generated by Bolt and may reference what changed, though the messages tend to be generic. For more descriptive commit history, download the project and use standard git commands from a terminal.
Pro tip: Push to GitHub early — before the project grows complex. Smaller initial pushes are faster and easier to verify. You can always push again later with additional changes.
Expected result: Your Bolt project appears as a new repository in your GitHub account. The repository contains all project files including package.json, source code, and configuration files.
Understand Version History vs. Git History
Understand Version History vs. Git History
One of the most important concepts for Bolt.new users coming from traditional Git workflows is the distinction between Bolt's internal Version History and Git commit history. These are two separate systems that serve different purposes and operate independently. Bolt's Version History is automatically recorded for every change the AI assistant makes. Every prompt that generates or modifies code creates a version entry in Bolt's internal history. You can access this through the 'History' icon in the Bolt toolbar — it shows a timeline of AI-generated states. Clicking any entry restores the project to that exact state. This is Bolt's undo/redo system, and it is completely independent of Git. Version History versions are stored on Bolt's servers, not in any Git repository. Git history, in contrast, only records when you explicitly push to GitHub. If you make 50 AI-assisted changes using Bolt's Version History between two GitHub pushes, Git will record this as a single commit — or at most a few commits if you pushed manually between sessions. The Git history reflects deliberate checkpoints, not every individual AI generation. The practical implication: use Bolt's Version History for quick rollbacks during a development session ('undo the last three changes'), and use Git pushes as meaningful checkpoints ('the authentication feature is complete'). If you need Git-level granularity for every change, you would need to download the project and use git commands locally to commit each change individually. Most Bolt users find the two-system approach works well: Version History for fine-grained development control, GitHub for collaboration and deployment.
Pro tip: Before making a major change in Bolt, push to GitHub first. This gives you a Git-level checkpoint you can revert to by cloning the repo fresh, independent of Bolt's Version History.
Expected result: You understand when to use Bolt's Version History (quick session-level rollbacks) versus Git pushes (deliberate project checkpoints for collaboration and deployment).
Set Up Team Collaboration: Bolt + External IDEs
Set Up Team Collaboration: Bolt + External IDEs
Once your project is on GitHub, you can establish a hybrid team collaboration workflow. This is particularly valuable when your team includes both non-technical members who build features in Bolt and developers who prefer traditional coding environments for complex work. The workflow runs as follows. In Bolt: build features with AI assistance, test in the preview, then push to GitHub when a feature is complete. For teammates using VS Code, Cursor, or other IDEs: clone the repository using `git clone https://github.com/yourname/your-project.git`, install dependencies with `npm install`, make changes using their preferred tools, commit and push to GitHub. Back in Bolt: use the 'Pull from GitHub' option in the Git panel to sync the latest changes before the next AI session. A few important considerations for this workflow. First, communication is critical — if both Bolt and an external developer are modifying the same files simultaneously, the next push from Bolt will create a merge conflict that must be resolved outside Bolt (Bolt does not have a merge conflict UI). Second, Bolt pushes to the main branch by default; if your team uses a branch-based Git workflow (feature branches, pull requests), the external developers create feature branches and merge to main, while Bolt always works on main. Third, `.boltignore` — similar to `.gitignore` — can exclude generated or large files from the AI's context, reducing token usage; this file should be committed to Git so all collaborators benefit. For the pull step in Bolt: the Git panel shows an option to sync or pull when the remote repository has newer commits than Bolt's local state. Click 'Pull' to update Bolt's file system with the teammate's changes. After pulling, Bolt's AI assistant is aware of the updated codebase for subsequent prompts.
1# Team member setup (outside Bolt, in terminal):2git clone https://github.com/yourname/your-bolt-project.git3cd your-bolt-project4npm install56# Make changes, then commit and push:7git add .8git commit -m "Fix authentication token refresh logic"9git push origin mainPro tip: Establish a rule: teammates always pull before starting work to avoid conflicts with Bolt's most recent push. A simple Slack message like 'pushing from Bolt now' before large pushes prevents most merge conflicts.
Expected result: Teammates can clone the repository, make changes in their IDEs, and push back to GitHub. Bolt can pull those changes and continues generating AI code on top of the updated codebase.
Handle GitLab and Other Git Hosts (Manual Export Workflow)
Handle GitLab and Other Git Hosts (Manual Export Workflow)
Bolt.new's native Git integration is exclusively for GitHub. If your team uses GitLab, Bitbucket, Azure DevOps, or any other Git hosting platform, you need to use the manual export workflow instead. This is slightly more manual but still straightforward. The manual workflow uses Bolt's project download feature. Click the download icon in Bolt's toolbar to export the entire project as a ZIP file. Extract the ZIP on your local machine — it contains a complete, standard JavaScript/TypeScript project with all configuration files. Then push to your Git host using standard terminal commands. For GitLab specifically: create a new empty repository in GitLab (no README, no .gitignore — you will push those from the downloaded project). Then in your terminal, navigate to the extracted project folder and run the sequence of commands below. After the initial push, subsequent updates from Bolt follow the same cycle: download ZIP from Bolt, extract, copy changed files into your local Git repo, commit, and push to GitLab. An alternative for teams who want tighter integration: connect Bolt to GitHub even if GitLab is your primary host, use GitHub as an intermediary, and set up GitLab's 'Mirror a repository' feature to pull from GitHub automatically. This way you push from Bolt to GitHub, and GitLab mirrors the changes. This approach adds a repository but removes the manual download step.
1# Initial GitLab push after downloading Bolt project:2cd your-extracted-bolt-project3git init4git add .5git commit -m "Initial commit from Bolt.new"6git remote add origin https://gitlab.com/yourname/your-project.git7git push -u origin main89# Subsequent update pushes:10# 1. Download new ZIP from Bolt11# 2. Extract and copy changed files to your local repo12git add .13git commit -m "Add new feature from Bolt.new"14git push origin mainPro tip: Use 'git status' before committing to review exactly which files changed between Bolt downloads. This helps you write more descriptive commit messages.
Expected result: Your Bolt project is pushed to GitLab (or another Git host) and stays synchronized through the download-extract-push cycle. The codebase is now accessible to all team members through your preferred Git platform.
Common use cases
Initial Project Backup and Version Control Setup
After building a working prototype in Bolt, push the project to GitHub to create a permanent backup and establish version control. This protects against accidental data loss (Bolt's file system is browser-based and can be lost if the project is deleted), creates a history of the project's evolution, and makes the code accessible outside Bolt.
Copy this prompt to try it in Bolt.new
Hybrid Team Workflow: Bolt + VS Code
The AI-assisted developer uses Bolt for rapid feature generation; the experienced developer clones the GitHub repository, reviews and refactors the AI-generated code in VS Code, fixes bugs, and pushes improvements back. Bolt pulls the latest changes before the next AI session to keep everything in sync.
Copy this prompt to try it in Bolt.new
CI/CD Pipeline via GitHub
Push Bolt-generated code to GitHub, then connect the repository to Vercel, Cloudflare Pages, or Railway for automatic CI/CD. Every push to the main branch triggers a production deployment. This lets you use Bolt for development while hosting on platforms not natively integrated with Bolt.
Copy this prompt to try it in Bolt.new
Troubleshooting
GitHub authorization fails — redirected back to Bolt with 'Authorization failed' message
Cause: A browser extension (ad blocker, privacy extension) is blocking the OAuth redirect, or the GitHub OAuth callback URL is blocked by a corporate network.
Solution: Temporarily disable browser extensions and try again. If on a corporate network, try on a personal network or mobile hotspot. If the issue persists, try the OAuth flow in an incognito window with extensions disabled.
Push to GitHub fails with 'Repository not found' or 'Permission denied'
Cause: The GitHub OAuth token has expired or Bolt's GitHub permissions were revoked in GitHub's Authorized OAuth Apps settings.
Solution: Go to GitHub.com > Settings > Applications > Authorized OAuth Apps and check if Bolt.new is listed. If not, reconnect from Bolt's Settings panel. If it is listed, revoke access and reconnect — this generates a fresh OAuth token.
Pulling from GitHub in Bolt shows merge conflicts and the pull fails
Cause: Both Bolt and an external developer modified the same file between the last sync point, creating conflicting versions that Git cannot automatically merge.
Solution: Download the Bolt project as a ZIP, extract it locally, and use standard git commands to resolve the merge conflict manually. After resolving conflicts in a text editor, commit the resolved version and push to GitHub. Then pull into Bolt from the conflict-free GitHub state.
Best practices
- Push to GitHub at meaningful milestones — after completing a feature, before making a major architectural change, or before handing off to a teammate — rather than after every single Bolt prompt.
- Add a .boltignore file to your project root to exclude node_modules/, dist/, .next/, and other generated directories from Bolt's AI context, which can reduce token consumption by up to 70% on large projects.
- Use descriptive repository names that reflect the project's purpose, since the GitHub URL becomes the project identifier for all collaborators and any CI/CD pipelines connected to it.
- Never manually rename, move, or delete a GitHub repository that is connected to a Bolt project — this breaks the integration and requires reconnecting from scratch.
- For team projects, establish a simple communication protocol (a Slack message or a calendar entry) to coordinate Bolt pushes, since Bolt always pushes to the default branch and can overwrite teammates' recent commits.
- Keep the .env file out of Git — Bolt's default .gitignore excludes it, but always verify this before the initial push by checking that .env is listed in .gitignore.
- Consider creating a CLAUDE.md or AGENTS.md file in the project root with coding conventions and architecture notes — Bolt's AI reads this file and follows the instructions in every subsequent session.
Alternatives
GitLab requires the manual download-and-push workflow since Bolt only integrates natively with GitHub, but is preferred by teams that need built-in CI/CD pipelines and self-hosted Git options.
After pushing to GitHub, VS Code is the most popular IDE for teammates to continue development outside Bolt, with built-in Git support and extensions for every language Bolt generates.
For teams that need reproducible deployment environments, combine Git with Docker to containerize the Bolt-generated app after cloning from GitHub.
Mercurial is an alternative version control system that requires the same manual export workflow as GitLab since Bolt's native integration is GitHub-only.
Frequently asked questions
Does Bolt.new automatically commit to GitHub on every AI change?
No — Bolt does not automatically commit to GitHub. GitHub pushes are manual actions you trigger from the Git panel. Every AI-generated change is tracked in Bolt's internal Version History automatically, but GitHub commits only happen when you explicitly click 'Push to GitHub.' This gives you control over when changes become part of the public Git history.
Can I use branches in Bolt.new?
Bolt's native GitHub integration pushes to the default branch (main) and does not provide a branch-switching UI within Bolt itself. Branch management, pull request creation, and code review workflows happen in GitHub's web interface or in a local IDE after cloning. Check Bolt's Settings > Account > Labs for any branch-related beta features that may have been added.
What happens to my project if I delete the connected GitHub repository?
The Bolt project itself is unaffected — your files and Version History remain in Bolt. However, the Git integration link is broken and you will need to reconnect by pushing to a new repository. Always keep at least one copy of the code in GitHub or as a downloaded ZIP to guard against Bolt project deletion.
Can multiple Bolt users collaborate on the same project simultaneously?
Bolt does not support real-time multi-user collaboration within a single Bolt project (like Figma's multiplayer mode). The collaboration pattern is asynchronous: one person works in Bolt, pushes to GitHub, and the other pulls. For true simultaneous collaboration, teammates use VS Code Live Share or similar tools on the GitHub-hosted code, then push back for Bolt to consume.
How do I connect the Bolt GitHub repository to Vercel or Netlify for automatic deployments?
After pushing your Bolt project to GitHub, go to Vercel or Netlify, click 'Add new project,' and import the GitHub repository. Both platforms detect your framework automatically (Vite, Next.js) and configure build settings. Every subsequent git push — whether from Bolt or a local IDE — triggers an automatic deployment. Set your environment variables (API keys, secrets) in the platform's settings panel before the first deployment.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation