c10c46a ←57cf2f7antonApr 5, 2026 api

edit branches.md via macOS (conflict)

M /docs/undefined +0 -1
✎ 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 lines
3branches 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 branches
6
7create a branch on `anton/blog/archive`:
7create a branch on `docs/markdown`:
8
9```bash
10git clone https://sublimated.com/anton/blog/archive.git
11cd archive
10git clone https://sublimated.com/docs/markdown.git
11cd markdown
12git checkout -b draft
13# make changes
14git push -u origin draft
15```
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## merging
5 unmodified lines
29git merge draft
30git push
31```
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## tags
12 unmodified lines
50tags are immutable. updating a tag requires `--force`.
51
52## use cases
53
55- **draft branches** — work on a blog post draft in `blog/posts/`, invisible to people cloning the whole blog
56- **feature branches** — develop a feature in `platform/api/`, merge when ready, changes cascade to root
57- **experiment branches** — try something in `data/analysis/`, delete the branch if it doesn't work out
54- **draft branches** — work on a draft in `docs/markdown/`, invisible to people cloning the whole docs space
55- **feature branches** — develop in a subfolder, merge when ready, changes cascade to root
56- **experiment branches** — try something in a folder, delete the branch if it doesn't work out
57- **agent branches** — an AI works on `agent/*` branches scoped to its folder, reviewed before merge
58
59see [git overview](index.md) for how to clone and push, or [hierarchical versioning](hierarchical.md) for how the cascade works.