enter image description here Thanks everyone for the inputs. I think there’s a misunderstanding about what I’m referring to when I say nested branching.
I’m not talking about:
branching from a commit inside another branch (Git already does that)
naming branches like feature/A/A1 (this is just a naming convention)
creating a feature branch, then a sub-feature branch, then merging/deleting (common Git workflow)
What I mean is something structurally different that Git does not support:
a branch that logically belongs to another branch, with an actual parent–child relationship stored in the VCS metadata.
Something like:
main
└── feature-A
└── A1-sub-feature
└── hotfix-A1-1
where:
A1-sub-feature inherits metadata, permissions, visibility, and branch context from feature-A
merging to the parent is implicit or rule-based
deletion of the parent automatically implies lifecycle rules for children
children exist only inside the parent branch’s scope
the system maintains a full nested tree of branches, not a flat namespace
In Git:
All branches are flat pointers to commits.
There is no parent–child relationship between branches.
Git doesn’t maintain branch hierarchy, only a DAG of commits.
The hierarchy people simulate using names (feature/sub1/sub2) is purely cosmetic.
So the kind of nested branching I’m talking about requires:
branch metadata beyond just “a pointer to a commit”
hierarchical lifecycle management
nested merge pipelines
ACL/permission propagation
task-based grouping within a branch tree
representing branches as nodes in a tree, not a flat list
This isn't possible in Git because Git branches are intentionally very lightweight (just a ref → commitID).
The parent branch does not “own” the sub-branch in any structural way.
My use case is a combined Task Management + Versioning System, so nested branches map to:
tasks
subtasks
sub-subtasks
Each with their own file changes, discussions, and merges.
Git supports branching-from-a-commit.
Git does not support hierarchical, metadata-aware, parent-scoped nested branches.
That’s the feature I’m trying to build in my system.