modified paragraph create a branch on docs/markdown:
modified code block git clone https://sublimated.com/docs/markdown.git
cd markdo...
modified paragraph the draft branch now exists at the markdown/ level:
modified list item cloning docs/markdown — you see draft
deleted list item cloning anton/blog — you do NOT see draft
modified list item cloning docs — you do NOT see draft
modified paragraph the merge commit is created at the markdown/ level. then the...
modified list item draft branches — work on a draft in docs/markdown/, invisibl...
modified list item feature branches — develop in a subfolder, merge when ready,...
modified list item experiment branches — try something in a folder, delete the ...
M /docs/undefined +0 -1
2 unmodified lines3branches in sublimated are scoped to the folder level where they're created. this follows from [hierarchical versioning](hierarchical.md) — since every folder has its own commit history, branches belong to folders too.4
5## folder-scoped branches6
7create a branch on `anton/blog/archive`:7create a branch on `docs/markdown`:8
9```bash10git clone https://sublimated.com/anton/blog/archive.git11cd archive10git clone https://sublimated.com/docs/markdown.git11cd markdown12git checkout -b draft13# make changes14git push -u origin draft15```16
17the `draft` branch now exists at the `archive/` level:18- cloning `anton/blog/archive` — you see `draft`19- cloning `anton/blog` — you do NOT see `draft`20- cloning `anton` — you do NOT see `draft`17the `draft` branch now exists at the `markdown/` level:18- cloning `docs/markdown` — you see `draft`19- cloning `docs` — you do NOT see `draft`20
21branches don't leak up the tree. each folder is its own scope.22
23## merging5 unmodified lines29git merge draft30git push31```32
34the merge commit is created at the `archive/` level. then the [cascade](hierarchical.md) kicks in — commits propagate up through `blog/` to `anton/` (space root) on the default branch.33the merge commit is created at the `markdown/` level. then the [cascade](hierarchical.md) kicks in — commits propagate up to `docs/` (space root) on the default branch.34
35the scoped branch stays at its level. the merged changes flow up.36
37## tags12 unmodified lines50tags are immutable. updating a tag requires `--force`.51
52## use cases53
55- **draft branches** — work on a blog post draft in `blog/posts/`, invisible to people cloning the whole blog56- **feature branches** — develop a feature in `platform/api/`, merge when ready, changes cascade to root57- **experiment branches** — try something in `data/analysis/`, delete the branch if it doesn't work out54- **draft branches** — work on a draft in `docs/markdown/`, invisible to people cloning the whole docs space55- **feature branches** — develop in a subfolder, merge when ready, changes cascade to root56- **experiment branches** — try something in a folder, delete the branch if it doesn't work out57- **agent branches** — an AI works on `agent/*` branches scoped to its folder, reviewed before merge58
59see [git overview](index.md) for how to clone and push, or [hierarchical versioning](hierarchical.md) for how the cascade works.