DevTools Surf logoDevTools Surf
AI / Modern DevAnimation / CSSAPI / Config
Sign in
DevTools Surf logoDevTools Surf
AI / Modern DevAnimation / CSSAPI / Config
Sign in
HomeDeveloper UtilitiesSubmodule Manager

About Submodule Manager

Submodule Manager preview - Developer Utilities tool

Manage git submodules with add, update, remove, and list operations. Part of the DevTools Surf developer suite. Browse more tools in the Developer Utilities collection.

Use Cases

  • Add a shared library or configuration repository as a submodule to multiple services.
  • Update all submodules to their latest commits as part of a dependency update workflow.
  • Remove a submodule that has been vendored or migrated into the main repository.
  • Debug a broken submodule reference after a repository was cloned without --recursive.

Tips

  • Pin submodules to a specific commit, not a branch — submodules tracking a branch silently drift as the branch is updated, causing non-reproducible builds.
  • Run git submodule update --init --recursive after cloning a repository with submodules — new contributors who omit this step get empty submodule directories with confusing errors.
  • Use git submodule foreach to run a command across all submodules: git submodule foreach git pull origin main updates all submodules in one command.

Fun Facts

  • Git submodules were introduced in Git 1.5.3 (2007), one year after Git itself was created by Linus Torvalds. They were controversial from the start due to their complex mental model.
  • The git subtree command (introduced in 2012) is an alternative to submodules that stores external code directly in the parent repository history, avoiding the dual-repository complexity at the cost of a more complex merge workflow.
  • Many large projects have moved away from git submodules toward monorepos (single large repositories) or package managers, citing the operational complexity of keeping submodule references synchronized across teams.

FAQ

How do I update a submodule to the latest commit?
Run git submodule update --remote <submodule-path> to fetch and check out the latest commit from the submodule's remote. Then commit the updated .gitmodules reference in the parent repository.
Why is my submodule directory empty after cloning?
Cloning a repository does not automatically initialize submodules. Run git submodule init followed by git submodule update, or use git clone --recurse-submodules when initially cloning.

Related Developer Utilities Tools

Collection JSON → cURLGit Diff → HTMLRegex VisualizerMakefile ExplainerShell Script LinterGitHub Actions VisualizerHAR File ViewerAPI Response Mocker
New · Flagshipsimple REST client

REST Handler — Collections, env vars, history, cURL converter

Send requests, save collections (nested), swap environments, and convert between cURL / Collection JSON / REST Handler YAML.

Open

Popular tools

The most-used tools on DevToolsSurf, one click away.

Encoding & crypto

  • Base64 Encode
  • Base64 Decode
  • URL Encoder
  • URL Decoder
  • Hash Generator
  • JWT Decoder
  • JWT Encoder
  • UUID Generator
  • ULID Generator
  • Password Generator
  • Bcrypt Hash Tester

Converters

  • CSV to JSON
  • JSON to CSV
  • XML to JSON
  • JSON to XML
  • HTML → Markdown
  • HTML → React JSX
  • cURL to Code
  • Collection JSON → cURL
  • Swagger to Collection JSON
  • JSON → Go Struct
  • JSON → TypeScript Types

JSON & YAML

  • JSON Formatter
  • JSON Validator
  • JSON Viewer
  • JSON Minifier
  • JSON Diff
  • JSONPath Tester
  • YAML Formatter
  • YAML to JSON
  • JSON to YAML

Text & regex

  • Regex Tester
  • Text Diff
  • Case Converter
  • Word Counter
  • Markdown Preview
  • Slug Generator
  • Lorem Ipsum Generator
  • Markdown → PDF

CSS & color

  • CSS Beautifier
  • Minify CSS
  • Color Converter
  • Gradient Generator
  • Contrast Checker
  • Color Palette Generator
  • Flexbox Playground
  • Tailwind → CSS

Generators

  • QR Code Generator
  • Mock Data Generator
  • Favicon Generator
  • .gitignore Builder
  • README.md Generator
  • Dockerfile Generator
  • Sitemap Generator

API & networking

  • REST Handler
  • HTTP Header Analyzer
  • IP Address Lookup
  • CIDR Calculator
  • User-Agent Parser
  • HTTP Status Reference
  • OpenAPI Viewer

Date & time

  • Timestamp Converter
  • Timezone Converter
  • Cron Expression Parser
  • Duration Calculator
  • Age Calculator
  • Date Format Converter

Images

  • Image Converter
  • Image Resizer (Batch)
  • SVG Optimizer
  • Base64 ↔ Image
  • WebP ↔ AVIF Converter
  • Image Compressor

PDF tools

  • PDF Merger
  • PDF Splitter
  • PDF Compressor
  • Markdown → PDF
  • EPUB → PDF
  • MOBI / AZW → PDF
  • DOCX → PDF
  • HTML → PDF

Resources

  • Community feed
  • Themes marketplace
  • Pricing & credits
  • Privacy policy
  • Terms of service
  • Sitemap
  • robots.txt

Your account

  • Sign in
  • Dashboard
  • Run history
  • My profile
  • Settings
DevTools Surf logo
DevTools Surf912+ tools

Fast · privacy-first · client-side · © 2026

Home·Feed·ThemesPricing·Sign inPrivacy·Sitemap Feedback