skillfed

gitman

A language-agnostic dependency manager using Git.

gitman v3.8.1 121.9K downloads/30d#11,968 on PyPI225
Permissive license MIT Active released

What it is and what it does

Gitman is a language-agnostic tool for managing Git repositories as project dependencies. It replaces or augments Git submodules by allowing you to declare external repositories in a YAML configuration file, specify exact versions (by commit SHA, tag, or branch), and automatically fetch and link them into your project. It supports grouping dependencies, running post-install scripts, sparse checkouts of specific paths, and recording locked commit SHAs for reproducible installs.

You configure dependencies once in gitman.yml, then use simple commands to update all nested repos to their specified versions, list what's currently installed, or restore previous versions. It's designed for polyglot projects where you need to pull in code from multiple Git sources without the rigidity of submodules.

Use it for:

  • Manage multiple external Git repositories in a monorepo or multi-language project without Git submodules.
  • Pin exact versions of third-party libraries or tools that live in separate Git repositories.
  • Organize dependencies into logical groups and update them selectively by group name.
  • Automatically run setup scripts (e.g., chmod, build steps) after checking out each dependency.
  • Fetch only specific subdirectories from large repositories using sparse checkout paths.
  • Lock and restore reproducible dependency states across team members and CI/CD pipelines.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Gitman manages nested Git repositories as dependencies, offering a Git-based alternative to submodules with support for version pinning, sparse checkouts, and post-install scripts.

Yes. Gitman is actively maintained, carries no known vulnerabilities, uses a permissive MIT license, and installs with low friction. It solves a real problem—managing multiple Git repositories as dependencies—that submodules handle poorly. Use it if your project needs to pull code from several external Git sources and you want version control, reproducibility, and scripting support without submodule complexity.

Install

gitman on PyPI

pip

pip install gitman

uv

uv add gitman

poetry

poetry add gitman

Installing gitman

Before you install

Low install friction with a pure Python wheel distribution. Actively maintained as of 2026-08-10 with recent releases. Requires Python 3.10+ and Git 2.8+ with stored credentials configured.

License in practice

MIT license permits commercial and private use with minimal restrictions—suitable for most projects.

Quickstart

pipx install gitman

# Create config file
gitman init

# Update all dependencies
gitman update

# Restore specific versions
gitman install

Requires Git 2.8+ with stored credentials configured; Python 3.10 or later.

Verify before relying

  • Whether sparse_paths (partial repository clones) work with all Git versions or have specific version requirements.
  • Performance characteristics when managing large numbers of nested repositories or very large individual repos.

Package facts

License MIT (permissive)
Python support supports the current Python release (<3.15,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 3 — datafiles, minilog, universal-startfile
Maintenance actively maintained — 147 days since the last release
Last repo commit
First released
Downloads 121,910/month — #11,968 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: gitman-3.8.1-py3-none-any.whl

Keywords: git, version control, build systems, dependency management, submodules

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software DevelopmentTopic :: Software Development :: Build ToolsTopic :: Software Development :: Version ControlTopic :: System :: Software Distribution

Tags

git dependency managersubmodules alternativenested git repositoriesversion control dependenciesgit-based package managementmonorepo dependency tool
git-dependency-managementmonorepo-tooling

More Software Development packages