[**@lancedb/lancedb**](../README.md) • **Docs** *** [@lancedb/lancedb](../globals.md) / Branches # Class: Branches Branch manager for a [Table](Table.md). Unlike tags, `create` and `checkout` return a new [Table](Table.md) handle scoped to the branch; writes on it do not affect `main`. ## Methods ### checkout() ```ts checkout(name, version?): Promise ``` Check out an existing branch and return a handle scoped to it. With `version` set, the returned handle is pinned to that version of the branch (a read-only, detached view); otherwise it tracks the branch's latest and stays writable. #### Parameters * **name**: `string` * **version?**: `number` #### Returns `Promise`<[`Table`](Table.md)> *** ### create() ```ts create( name, fromRef?, fromVersion?): Promise
``` Create a branch and return a handle scoped to it. #### Parameters * **name**: `string` Name of the new branch. * **fromRef?**: `string` Source branch to fork from. Defaults to `main`. * **fromVersion?**: `number` A specific version on `fromRef`. Defaults to latest. #### Returns `Promise`<[`Table`](Table.md)> *** ### delete() ```ts delete(name): Promise ``` Delete a branch. #### Parameters * **name**: `string` #### Returns `Promise`<`void`> *** ### list() ```ts list(): Promise> ``` List all branches, mapping name to branch metadata. #### Returns `Promise`<`Record`<`string`, [`BranchContents`](BranchContents.md)>>