# Install git-subrepo with Homebrew, apt, Nix, zypper

Git Submodule Alternative. Version 0.4.9 via Homebrew; verified 2026-06-22. Also installable with debian: sudo apt install git-subrepo.

## Install

```sh
sudo av install brew:git-subrepo
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install git-subrepo
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install git-subrepo
```

  Evidence: Debian stable package indexes: git-subrepo from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#git-subrepo
```

  Evidence: nixpkgs package indexes: pkgs/by-name/gi/git-subrepo/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install git-subrepo
```

  Evidence: openSUSE Tumbleweed package metadata: git-subrepo from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:git-subrepo
- **Package manager:** Homebrew
- **Version:** 0.4.9
- **Source summary:** Git Submodule Alternative
- **Homepage:** <https://github.com/ingydotnet/git-subrepo>
- **Repository:** <https://github.com/ingydotnet/git-subrepo>
- **Last updated:** 2026-06-22T14:03:31-07:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- git-subrepo (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.4.9
## Project history and usage

git-subrepo is a Git extension for embedding external repositories into subdirectories while avoiding many workflow problems associated with submodules and subtrees.

### Project history

The repository began in 2013 and framed git-subrepo as a solid alternative to Git submodule and subtree workflows. Its introductory documentation argues that users, collaborators, and repository owners have different needs, and that submodules especially impose knowledge and synchronization burdens on people who only want to clone and use a project.

The design stores subrepository metadata in a .gitrepo file inside the subdirectory, squashes pulls into the mainline history, and keeps refs for subrepo fetch and push workflows. A major 0.4.0-era redesign in 2018 shifted implementation details toward merge and rebase methods, with later 0.4.x releases improving testing, shell compatibility, path handling, Git version behavior, and completion scripts.

### Adoption history

git-subrepo serves a persistent niche: projects that want vendored source trees with upstream synchronization but do not want users to run git submodule update. Its package-manager presence in Homebrew, Debian, Nix, and openSUSE-style packaging gives maintainers a packaged alternative for teams that reject Git submodules but still need upstream push and pull operations.

### How it is used

Practitioners clone an external repository into a subdirectory, initialize an existing subdirectory as a subrepo, pull upstream updates, push local subdirectory changes back, inspect status, clean metadata refs, and rely on .gitrepo to mark and configure each embedded repository.

### Why package nerds care

git-subrepo is important in package-maintenance culture because it addresses the recurring vendor-versus-submodule choice. It favors normal clone behavior for downstream users while preserving enough metadata for maintainers to synchronize embedded code with upstream projects.

### Timeline

- 2013: First public commit appeared in the GitHub repository.
- 2015: 0.2.x and 0.3.0 tags marked early public releases.
- 2018: 0.4.0 release documented a redesign around merge and rebase methods.
- 2024: 0.4.7 through 0.4.9 releases included compatibility and packaging fixes.

### Related projects

- The project's own documentation compares it directly with git-submodule and git-subtree, and also discusses subtree merge strategies as related Git practice.

### Sources

- <https://formulae.brew.sh/formula/git-subrepo>
- <https://github.com/ingydotnet/git-subrepo>
- <https://github.com/ingydotnet/git-subrepo/blob/master/Changes>
- <https://github.com/ingydotnet/git-subrepo/blob/master/Intro.pod>
- <https://github.com/ingydotnet/git-subrepo/blob/master/ReadMe.pod>
- <https://github.com/ingydotnet/git-subrepo/releases>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Other Package-Manager Records

- Debian apt - git-subrepo - 0.4.9-2: normalized package name match | Debian stable package indexes: git-subrepo from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Alternative to git-submodule(1) and git-subtree(1) | https://github.com/ingydotnet/git-subrepo
- Nix - git-subrepo: normalized package name match | nixpkgs package indexes: pkgs/by-name/gi/git-subrepo/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - git-subrepo - 0.4.6-2.5: normalized package name match | openSUSE Tumbleweed package metadata: git-subrepo from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Git Submodule Alternative | https://github.com/ingydotnet/git-subrepo
- zypper - git-subrepo-bash-completion - 0.4.6-2.5: normalized package name match | openSUSE Tumbleweed package metadata: git-subrepo-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Bash completion for git-subrepo | https://github.com/ingydotnet/git-subrepo
- zypper - git-subrepo-zsh-completion - 0.4.6-2.5: normalized package name match | openSUSE Tumbleweed package metadata: git-subrepo-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | ZSH completion for git-subrepo | https://github.com/ingydotnet/git-subrepo


## Combined YAML source

View the package source record on GitHub. [combined/git-subrepo.yml](https://github.com/mxcl/pkgdb/blob/main/combined/git-subrepo.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
