QA
Intermediate LevelGit & GitHub

What is the difference between Git Submodules and Git Subtrees?

❓ Interview Prompt: Compare managing external repository dependencies via Git Submodules (pointers) versus Git Subtrees (embedded files).

Submodules link external repositories as lightweight 40-character commit pointers in .gitmodules (requires git submodule update --init). Subtrees merge external repository files directly into the parent commit tree.

Code Implementation Example

bash
git submodule add https://github.com/org/shared-lib.git libs/shared-lib
git submodule update --init --recursive
git subtree add --prefix=libs/shared-lib https://github.com/org/shared-lib.git main --squash
💡Adding dependencies using Git Submodules vs Git Subtrees.
🎯 Interview Key Takeaway

Submodules store lightweight commit pointers requiring submodule init; Subtrees embed external file history directly into parent repos.

#Submodules#Subtrees#Dependencies#Intermediate
Back to all Git & GitHub Questions→

More Git & GitHub Interview Questions

Beginner LevelGit & GitHub

Compare git rebase versus git merge and explain how git bisect finds regressions.

Beginner LevelGit & GitHub

What is the difference between git init and git clone?

Beginner LevelGit & GitHub

What are the Three Trees in Git (Working Directory, Staging Area / Index, Commit History)?