bgit

Stop switching Git accounts manually.
Manage multiple identities with one command.

Switch between work, personal, and client Git accounts instantly — no config editing, no remote URL headaches.

Built by developers, for developers
Open source on GitHub

Real workflow in seconds

developer@macbook — ~/projects/work-repo
identity mismatch
developer@macbook ~/projects/work-repo git push origin main
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
ErrorPermission denied to company/project for personal-account.
FatalCould not read from remote repository.
 
Please make sure you have the correct access rights.

Install in seconds

Install fast, add your identity, and start pushing with confidence

Choose your platform and preview the exact install flow, identity setup, and repo workflow before you copy a single command.

bash flow

This Linux tab mirrors a realistic terminal flow: install bgit, add the freelance identity, switch to it, verify the active user, then clone or fix repositories.

Install bgit on Linux
dev@linux-box:~/projects
$curl -L https://github.com/byterings/bgit/releases/latest/download/bgit-linux-amd64 -o bgit chmod +x bgit sudo mv bgit /usr/local/bin/
bgit version 0.3.0
% Total % Received % Xferd Average Speed Time Time Time Current 100 9630k 100 9630k 0 0 4619k 0 0:00:02 0:00:02 --:--:-- 8259k
Add new identity
dev@linux-box:~/projects
$bgit add
✓ User 'freelance' added successfully
Adding new user identity ? Alias (e.g., work, personal, freelance): freelance ? Full name: test dev ? Email address: test@freelance.com ? GitHub username: test-freelance ? How do you want to set up SSH key? Generate new key pair (Recommended) ✓ SSH key generated: /home/dev/.ssh/bgit_test-freelance ---------------------------------------------------------------------- Add this public key to your GitHub account: https://github.com/settings/keys ---------------------------------------------------------------------- Next: bgit use freelance
Switch to freelance
dev@linux-box:~/projects
$bgit use freelance
✓ Switched to identity: freelance (test@freelance.com)
ℹ SSH key loaded into agent Clone repos: bgit clone <url> Fix existing: bgit remote fix
Check active identity
dev@linux-box:~/projects
$bgit active
Active user: freelance (global)
Name: test dev Email: test@freelance.com GitHub: test-freelance
New repo
dev@linux-box:~/projects
$bgit clone https://github.com/byterings/bgit-website.git
Ready to clone with the active freelance identity
The active identity is already set before cloning this repository.
Existing repo
dev@linux-box:~/projects/existing-repo
$bgit remote fix
Ready to fix an existing repository remote
Run this after switching identity when a local repo already exists.

Why bgit?

The Problem

  • -Constantly switching SSH configs
  • -Pushing with wrong identity
  • -Fixing remotes again and again
  • -Never sure which account you're currently using

The Solution

  • +One command to switch: bgit use work
  • +Workspaces for automatic identity by folder
  • +Built-in diagnostics with bgit doctor
  • +Keep using normal git commands

Features

Everything you need in a Git identity management CLI tool

Switch accounts instantly

No config edits. No mistakes.

Workspaces

Organize projects by identity. Repos in workspace folders automatically use the right account

SSH Management

Automatic SSH key generation and configuration for each identity

Diagnostics

Built-in doctor command to diagnose and auto-fix SSH permissions and config issues

Cross-Platform

Works perfectly on Linux, macOS, and Windows

Repo Binding

Bind individual repos to specific identities for persistent ownership

Stop wasting time switching Git accounts
Start using bgit in seconds

Join developers who use this CLI tool to manage multiple Git accounts effortlessly