Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GitAccNew to Visual Studio Code? Get it now.
GitAcc

GitAcc

Heber Almeida

| (0) | Free
Multiple Git identities. Pick an account before each commit.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GitAcc

VS Code extension for managing multiple Git identities. Register accounts, pick one before each commit, and review or edit commit history from Source Control.

Why GitAcc?

If you work with personal and professional Git accounts in the same editor, GitAcc keeps identities organized and asks which account to use before the native Git commit flow continues (stage-all prompt, commit message, etc.).

Features

Area What it does
Accounts Add, remove, and switch identities (user.name + user.email)
Commit guard Quick pick Account for this commit before Git dialogs
Footer Active account in the status bar with configurable icon and color
SCM toolbar Account icon in Source Control — click to switch account
Commit input Active account shown while typing the commit message
GitAcc view Commit history with changed files, diffs, and edit actions
Workspace JSON Optional .gitacc.json at project root (user / workspace / merge)
Reset data Restore defaults, clear global file, remove workspace JSON
Scope Apply identity locally (repo) or globally
Migration Imports legacy .vscode-git-profiles.json on first run

Installation

  1. Open Extensions (Ctrl+Shift+X / Cmd+Shift+X)
  2. Install GitAcc (or load this folder with Run Extension / F5)
  3. Open GitAcc in the activity bar to add accounts

Quick start

1. Add accounts

  1. Open GitAcc → Accounts
  2. Click Add account
  3. Set a short label (e.g. Work, Personal), full name, and email

Manage options under GitAcc → Settings in the sidebar.

2. Switch account

  • Click an account in the sidebar
  • Click the footer (status bar) item
  • Click the account icon in the SCM toolbar
  • Use GitAcc: Switch Account from the Command Palette

The active account is applied to git config (user.name / user.email) according to Apply scope.

3. Commit with account selection

With gitacc.promptOnCommit enabled (default):

  1. Click Commit in Source Control (or Cmd/Ctrl+Enter in the commit input)
  2. If you have more than one account, choose Account for this commit
  3. Continue with the normal Git flow

With a single account, GitAcc uses it automatically. With promptOnCommit off, the active account is applied without showing the picker.

{
  "gitacc.promptOnCommit": false
}

4. GitAcc commit view

In Source Control, expand the GitAcc section:

  • Commit list refreshes after commits, push, pull, and other repo changes
  • Expand a commit → changed files
  • Click a file → side-by-side diff
  • Right-click a commit:
    • Change Author · Edit Message · Edit Date
    • Undo Commit · Remove from Git
    • Copy Hash · Copy Message
  • Multi-select commits (Cmd/Ctrl + click) → Bulk Change Author

5. Footer (status bar)

When enabled, shows: [icon] GitAcc Label (e.g. GitAcc TSE).

Click to switch account. Active state uses a configurable theme color and prominent background.

Sidebar settings

Expand GitAcc → Settings:

Item Description
Accounts source user · workspace · merge
Create workspace JSON Create or open .gitacc.json (shows ✓ when the file exists)
Remove workspace JSON Delete .gitacc.json and remove its entry from .gitignore
Prompt on commit On / Off
Footer Show active account in status bar
Account icon Codicon for indicators (footer, SCM, sidebar, picker)
Active color Theme color for the active account
SCM toolbar Show account icon in Source Control toolbar
Commit input Show active account above commit message
Apply scope Local (repo) or Global
Reset data Restore settings, clear global accounts, or reset everything

Settings (VS Code)

All options are also in Settings → GitAcc.

Setting Default Description
gitacc.accountsSource user user · workspace · merge
gitacc.promptOnCommit true Ask for account before each commit
gitacc.applyScope local local = current repo; global = system-wide
gitacc.showInStatusBar true Show active account in the footer
gitacc.statusBarIcon git-commit Account icon (footer, SCM, commit input, sidebar, picker)
gitacc.statusBarActiveColor statusBarItem.prominentForeground Active account color
gitacc.showInScmToolbar true Account icon in SCM toolbar
gitacc.showInCommitInput true Active account in commit input
gitacc.graph.maxCommits 100 Max commits in GitAcc view
gitacc.debug true Log to Output → GitAcc Debug

Example configuration

{
  "gitacc.accountsSource": "workspace",
  "gitacc.promptOnCommit": true,
  "gitacc.showInStatusBar": true,
  "gitacc.statusBarIcon": "person",
  "gitacc.statusBarActiveColor": "charts.green",
  "gitacc.applyScope": "local"
}

Data storage

User file (default)

~/.gitacc/accounts.json

Workspace file (project root)

.gitacc.json

Create or open from GitAcc → Settings → Create workspace JSON.

When created, GitAcc adds .gitacc.json to .gitignore automatically. Remove workspace JSON deletes the file and removes that line from .gitignore (and deletes .gitignore if it becomes empty).

Both files use the same format:

{
  "activeAccountId": "uuid",
  "accounts": [
    {
      "id": "uuid",
      "label": "Work",
      "name": "Your Name",
      "email": "you@company.com"
    }
  ]
}

Accounts source (gitacc.accountsSource)

Value Load from Save to
user User file only User file
workspace Workspace JSON only (falls back to user file if missing) Workspace JSON
merge Both combined User file

Merge rule: if the user file has more accounts than the workspace file, the workspace file is ignored and only user accounts are used. Otherwise accounts are merged by email (user entries win on duplicates).

Use workspace when the project defines its own accounts in .gitacc.json. Use merge to combine team templates with personal accounts in ~/.gitacc/accounts.json.

Reset data

GitAcc → Settings → Reset data (or GitAcc: Reset GitAcc Data):

Option Action
Reset settings to defaults Restore all gitacc.* settings
Clear global accounts Delete ~/.gitacc/accounts.json
Clear workspace JSON Delete .gitacc.json and remove .gitignore entry
Reset everything All of the above

Each destructive action asks for confirmation.

Commands

Command Description
GitAcc: Switch Account Pick and apply active account
GitAcc: Add Account Register a new identity
GitAcc: Create Workspace JSON Create or open .gitacc.json
GitAcc: Remove Workspace JSON Delete .gitacc.json and clean .gitignore
GitAcc: Reset GitAcc Data Reset settings and/or account files
GitAcc: Commit with Account Commit with account prompt (internal / keybinding)
GitAcc: Debug Status Inspect commit interception state
GitAcc: Open Debug Log Open GitAcc Debug output

Requirements

  • VS Code 1.100+
  • Built-in Git extension (vscode.git)
  • Git on PATH

Limitations

GitAcc only sets user.name and user.email. It does not manage GitHub/GitLab login, tokens, SSH keys, or GPG signing.

Author

Heber Almeida — github.com/heberalmeida

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft