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

SyncGit

Preview

Muhammad Inam

| (0) | Free
Safely commit, pull, push, and inspect Git repositories from VS Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SyncGit

SyncGit provides guarded Git pull, push, and synchronization workflows in the VS Code Source Control sidebar. It checks repository state before changing anything and stops when a situation needs a developer's decision.

Created by Muhammad Inam (inam003).

Source Control View

Open the Source Control sidebar and expand SyncGit. Its toolbar provides Auto Commit, Smart Sync, Smart Pull, Smart Push, Repository Health, and refresh actions. The view shows the current branch, upstream, ahead/behind state, working-tree state, and conflicts. It refreshes automatically when VS Code detects Git repository changes, including checkout, pull, push, commit, and working-tree updates.

Commands

Command Behavior
SyncGit: Auto Commit Requests a commit message, stages every tracked change, deletion, and untracked file, then creates one local commit. It does not push.
SyncGit: Smart Pull Fetches and performs a fast-forward-only pull. Local tracked, staged, and untracked changes are temporarily stashed and restored.
SyncGit: Smart Push Fetches first, safely updates a behind branch, and pushes local commits. It can publish a new branch after confirmation.
SyncGit: Smart Sync Synchronizes local and remote commits. For diverged history, it asks you to choose Rebase or Merge before continuing.
SyncGit: Repository Health Reports the branch, working tree, upstream, ahead/behind counts, and conflicts without modifying the repository.

The same commands remain available from the Command Palette by searching for SyncGit.

Safety Rules

Auto Commit is the only SyncGit command that stages files or creates a commit. After you enter a message, it stages all modified, deleted, and untracked files; files ignored by Git remain ignored. Auto Commit never pulls or pushes.

SyncGit never force-pushes, resets, cleans untracked files, or resolves conflicts automatically. Smart Pull remains fast-forward only. For diverged history, only Smart Sync can perform a rebase or merge, and only after you choose the strategy. Detached HEAD states, missing upstreams, and conflicts stop with a clear message.

If the selected rebase or merge causes conflicts, SyncGit stops before pushing and opens the configured conflict view. Resolve and complete the Git operation manually, then run Smart Sync again.

When local changes must be protected during a pull, SyncGit creates a named safety stash including untracked files and restores both the working tree and index afterward. If restoration conflicts, the stash is retained by Git and SyncGit opens the configured conflict view.

Requirements

  • Visual Studio Code 1.125.0 or newer
  • Git installed and available on PATH
  • An open folder containing the Git repository to operate on

In a multi-root workspace, SyncGit uses the folder containing the active editor. If no editor is active, it uses the first workspace folder.

Settings

Setting Default Purpose
syncgit.showProgress true Show progress notifications during repository operations.
syncgit.confirmBeforePublish true Confirm before publishing a branch that has no upstream.
syncgit.conflictView mergeEditor Open the Merge Editor, Source Control view, or nothing when conflicts need manual resolution.
syncgit.logLevel info Write normal or debug-level details to the SyncGit output channel.

Use View: Toggle Output, then select SyncGit to inspect operation logs. SyncGit does not log credentials.

Install a VSIX

  1. Open the Extensions view in VS Code.
  2. Select the Views and More Actions menu.
  3. Choose Install from VSIX... and select the SyncGit package.

Development

npm install
npm run compile
npm run lint
npm run test:unit
npm test
npm run package

npm run verify runs linting, unit and Git integration tests, and the VS Code Extension Host tests. npm run package verifies the project before creating a .vsix file.

Current Limitations

  • Conflicted rebases and merges must be completed manually before SyncGit can push.
  • Detached HEAD states are reported but not modified.
  • The initial release operates on one workspace folder per command.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft