branches and tags
branches in sublimated are scoped to the folder level where they're created. this follows from hierarchical versioning — since every folder has its own commit history, branches belong to folders too.
folder-scoped branches
create a branch on anton/blog/archive:
git clone https://sublimated.com/anton/blog/archive.git
cd archive
git checkout -b draft
# make changes
git push -u origin draftthe draft branch now exists at the archive/ level:
cloning
anton/blog/archive— you seedraftcloning
anton/blog— you do NOT seedraftcloning
anton— you do NOT seedraft
branches don't leak up the tree. each folder is its own scope.
merging
when you merge a scoped branch back into main:
git checkout main
git merge draft
git pushthe merge commit is created at the archive/ level. then the cascade kicks in — commits propagate up through blog/ to anton/ (space root) on the default branch.
the scoped branch stays at its level. the merged changes flow up.
tags
lightweight and annotated tags both work:
git tag v1.0
git push origin v1.0
# annotated
git tag -a v2.0 -m "release 2.0"
git push origin v2.0tags are immutable. updating a tag requires --force.
use cases
draft branches — work on a blog post draft in
blog/posts/, invisible to people cloning the whole blogfeature branches — develop a feature in
platform/api/, merge when ready, changes cascade to rootexperiment branches — try something in
data/analysis/, delete the branch if it doesn't work outagent branches — an AI works on
agent/*branches scoped to its folder, reviewed before merge
see git overview for how to clone and push, or hierarchical versioning for how the cascade works.