Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Farshid Auto-Update GitModuleNew to Visual Studio Code? Get it now.
Farshid Auto-Update GitModule

Farshid Auto-Update GitModule

Dr. Farshid Pirahansiah

| (0) | Free
Automatically fast-forwards every git submodule declared in any .gitmodules file in the workspace. Runs on startup or on demand.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Farshid Auto-Update GitModule

Keep every git submodule in your workspace fast-forwarded — automatically.

A focused VS Code extension that scans the workspace for .gitmodules files, discovers every declared submodule, and runs git fetch + git merge --ff-only on each one. Runs on startup, on a keybinding, or from the Command Palette.

  • Author: Dr. Farshid Pirahansiah — https://pirahansiah.com
  • Publisher: pirahansiah
  • Extension ID: pirahansiah.farshid-autoupdate-gitmodule

Features

  • Auto-scan every .gitmodules in the workspace (configurable excludes).
  • Parallel pulls with adjustable concurrency (default 3) — fast on workspaces with many submodules.
  • Fast-forward only — never silently merges or rewrites history.
  • Cancellable progress notification.
  • Status bar summary with click-to-run.
  • Detached HEAD safe — skips submodules with no upstream branch.
  • Local-path safe — passes -c protocol.file.allow=always so file:// submodules work.
  • Per-submodule timeout so a hung remote can't freeze the workspace.
  • Output channel Auto-Update GitModule logs every command and result.

Commands

Command Title
farshidAutoupdateGitmodule.updateNow Auto-Update GitModule: Update Submodules Now
farshidAutoupdateGitmodule.showOutput Auto-Update GitModule: Show Output Log

Default keybinding: Cmd+Alt+F12 (macOS) / Ctrl+Alt+F12 (Win/Linux).

Settings

Key Default Description
farshidAutoupdateGitmodule.runOnStartup true Pull all submodules when the workspace opens.
farshidAutoupdateGitmodule.confirmBeforePull false Ask before pulling on startup.
farshidAutoupdateGitmodule.allowFileProtocol true Allow file:// / local-path submodule URLs.
farshidAutoupdateGitmodule.showNotifications true Show success/failure notifications.
farshidAutoupdateGitmodule.showStatusBar true Show a status bar item with the last result.
farshidAutoupdateGitmodule.concurrency 3 Max submodule pulls to run in parallel (1–16).
farshidAutoupdateGitmodule.exclude ["**/node_modules/**"] Globs to ignore when scanning.
farshidAutoupdateGitmodule.timeoutSeconds 120 Per-submodule timeout for fetch + merge.

How it behaves

For each declared submodule the extension:

  1. Verifies the working copy exists and is initialized (has a .git entry).
  2. Reads HEAD. If detached, the submodule is skipped (counted as detached, not failed).
  3. git fetch --prune origin
  4. git merge --ff-only @{u}

It does not stage or commit the submodule pin in the parent repo — that's intentional; you decide when to bump the pin.

Build & develop

npm install
npm run esbuild     # bundle once
npm run esbuild-watch   # bundle in watch mode for F5 dev host

Open this folder in VS Code and press F5 to launch the Extension Development Host.

Package & publish

npm run vsix                # produces farshid-autoupdate-gitmodule-X.Y.Z.vsix
vsce publish -p $VSCE_PAT   # publish to Marketplace

vsce:prepublish runs npm run package (esbuild minify) automatically.

License

MIT — see LICENSE.

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