Git submodules
Ranked 4 of 9 version control features by recommenders
Recommended for referencing other repositories inside one project and for simple, built-in setup with Git. Critics agree they are awkward, buggy in places and painful to use day to day.
Recommended for referencing other repositories inside one project and for simple, built-in setup with Git. Critics agree they are awkward, buggy in places and painful to use day to day.
27 people gave an opinion
- recommend it
- 14
- criticize it
- 13
- approval share
- 52%
Recommended in 7 of 13 months
- November 2025: not recommended
- December 2025: recommended
- January 2026: not recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: not recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: not recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 14 people recommend itNeeds 10 or more, met.
- 1 recommender for every criticNeeds 2 to 1 or better, not met.
- Recommended in 7 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Brings other repos into one project
“It gives me a monorepo experience in repos that otherwise aren't/can't exist as one monorepo for various reasons.”
Comment from 1 Oct 2026 in “Git 3.0's upcoming SHA-256 default will be a costly mistake” “They're the best way we have to reference other repositories from one repository.”
Comment from 1 Oct 2026 in “Git 3.0's upcoming SHA-256 default will be a costly mistake” Simple and easy to set up
“Super easy. Also makes it straightforward to develop patches to send upstream from within your project.”
Comment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan” “They're not hard to work with.”
Comment from 1 Oct 2026 in “Git 3.0's upcoming SHA-256 default will be a costly mistake” Designed well for their purpose
“they're extremely useful and designed basically exactly how you'd want”
Comment from 5 Sep 2026 in “Git Submodules as a Package Manager” “I think submodules are good enough for what they do”
Comment from 5 Sep 2026 in “Git Submodules as a Package Manager” “they still make more sense. The are composable!”
Comment from 30 Dec 2025 in “Everything as Code: How We Manage Our Company in One Monorepo”
What people warn about
Each mark is one comment
Painful, awkward and miserable to use
“Submodules aren't perfect and can be really annoying. I tried to avoid them at first.”
Comment from 5 Sep 2026 in “Git Submodules as a Package Manager” “working with git submodules is such an needlessly miserable experience”
Comment from 1 Mar 2026 in “Cracking the Python Monorepo” “One is easy and the other is about as fun as having teeth extracted.”
Comment from 1 Oct 2026 in “Git 3.0's upcoming SHA-256 default will be a costly mistake” - Comment from 17 Feb 2026 in “Evolving Git for the Next Decade”
- Comment from 1 Oct 2026 in “Git 3.0's upcoming SHA-256 default will be a costly mistake”
- Comment from 6 Dec 2025 in “Stacked Diffs with git rebase —onto”
- Comment from 15 Feb 2026 in “Git is a file system. We need a database for the code”
- Comment from 5 Sep 2026 in “Git Submodules as a Package Manager”
- Comment from 17 Jun 2026 in “Epic Games announces Lore version control system”
Gotchas and inherited Git flaws
“Kind of feels like there's little point using it if it's just going to copy Git's mistakes.”
Comment from 25 Oct 2026 in “JetBrains Thinkrail” “git submodule implementation has even more hairs than worktrees”
Comment from 15 Apr 2026 in “What is jj and why should I care?” “Git submodules are the regular expressions of version control.”
Comment from 17 Jun 2026 in “Epic Games announces Lore version control system” - Comment from 30 Dec 2025 in “Everything as Code: How We Manage Our Company in One Monorepo”
Other version control features people recommend
The four most recommended other version control features, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Git worktree | 58 | 21 | 73% | 11 | — | Approved |
| git rebase | 24 | 13 | 65% | 9 | — | — |
| git rerere | 19 | 4 | 83% | 8 | — | Approved |
| Git submodulesThis page | 14 | 13 | 52% | 7 | — | — |
| git add -p | 13 | 4 | 76% | 7 | — | Approved |
What people said
31 of the 33 comments that mention it, newest first. Each links to the original comment.
“Kind of feels like there's little point using it if it's just going to copy Git's mistakes.”
“Telling people not to use a core git feature isn't viable”
“One is easy and the other is about as fun as having teeth extracted.”
“They're not hard to work with.”
“git submodules has always been a major dumpster fire”
“have the same SHA-1/SHA-256 incompatibility issue that submodules do”
“Instead of using an elegant mechanism”
“They're the best way we have to reference other repositories from one repository.”
“It gives me a monorepo experience in repos that otherwise aren't/can't exist as one monorepo for various reasons.”
“I think submodules are good enough for what they do”
“they are both shitty solutions”
“Submodules aren't perfect and can be really annoying. I tried to avoid them at first.”
“It is known to be buggy and can break your .git directory”
“IMO they're almost always the wrong solution.”
“they're extremely useful and designed basically exactly how you'd want”
“without the downsides of git submodules”
“there's LFS and submodules. It's just that those both suck balls.”
“Git submodules are the regular expressions of version control.”
“the issue with using submodules is you still need the rights to pull the other source repo”
“The way I usually solve this is by using git submodules.”
“Vendorizing using git submodule should be a robust mitigation for this problem.”
“git submodule implementation has even more hairs than worktrees”
“Super easy. Also makes it straightforward to develop patches to send upstream from within your project.”
“working with git submodules is such an needlessly miserable experience”
“If you do not need the features of a package manager, then git submodules is great indeed.”
“the tooling support around it just makes it super painful”
“submodules are so awful in practice”
“I did use submodules but I find monorepo easier to manage”
“git submodules have some serious gotchas”
“they still make more sense. The are composable!”
“Git submodules are absolutely awful.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.