|
| 1 | +--- |
| 2 | +id: overview |
| 3 | +title: Branching |
| 4 | +image: /img/og-images/platform.png |
| 5 | +--- |
| 6 | + |
| 7 | +import { ScreenshotWrapper } from '../shared/_ScreenshotWrapper'; |
| 8 | + |
| 9 | +:::info Feature availability |
| 10 | +Branching is available on Business and Enterprise plans. [Upgrade your plan](https://tolgee.io/pricing) to use this feature. |
| 11 | + |
| 12 | +If you use the self-hosted version, you must [set up the license](/platform/self_hosting/licensing) to use this feature. |
| 13 | +::: |
| 14 | + |
| 15 | +Branching lets you create isolated copies of your project's translations to work on independently. Different teams can work on separate branches simultaneously without affecting each other, then merge changes back when ready. |
| 16 | + |
| 17 | +**Common use cases:** |
| 18 | +- Translating a new feature without affecting the production translations |
| 19 | +- Preparing translations for an upcoming release while regular translation work continues |
| 20 | +- Experimenting with copy changes before committing them to the main branch |
| 21 | + |
| 22 | +## Key Concepts |
| 23 | + |
| 24 | +- **Branch** — an isolated copy of all translation keys and their translations at the point of branching |
| 25 | +- **Default branch** (`main`) — the primary branch every project starts with; it always exists and cannot be deleted |
| 26 | +- **Protected branch** — a read-only branch; translations can only be changed via a merge, not edited directly |
| 27 | +- **Merge** — the process of applying changes from one branch into another, with conflict detection and resolution |
| 28 | + |
| 29 | +## Navigating Between Branches |
| 30 | + |
| 31 | +The **branch selector** in the breadcrumb bar lets you switch between branches. All views that work with translations — dashboard, translations, import, export, and tasks — reflect the currently selected branch. |
| 32 | + |
| 33 | +<ScreenshotWrapper |
| 34 | + src="/img/docs/platform/branching/screenshot_01_translations_with_branch_selector.png" |
| 35 | + alt="Translations view with branch selector in the breadcrumb" |
| 36 | +/> |
| 37 | + |
| 38 | +Click the branch selector to open the list of available branches and switch to a different one. |
| 39 | + |
| 40 | +<ScreenshotWrapper |
| 41 | + src="/img/docs/platform/branching/screenshot_02_branch_selector_open.png" |
| 42 | + alt="Branch selector open showing all branches" |
| 43 | +/> |
| 44 | + |
| 45 | +## Managing Branches |
| 46 | + |
| 47 | +Go to **Branching** in the project sidebar to manage all branches for the project. |
| 48 | + |
| 49 | +<ScreenshotWrapper |
| 50 | + src="/img/docs/platform/branching/screenshot_03_branches_list.png" |
| 51 | + alt="Branches list with multiple branches" |
| 52 | +/> |
| 53 | + |
| 54 | +### Creating a Branch |
| 55 | + |
| 56 | +Click **+ Branch** to open the create dialog. Give the branch a name and optionally choose a source branch to branch from (defaults to the default branch). |
| 57 | + |
| 58 | +<ScreenshotWrapper |
| 59 | + src="/img/docs/platform/branching/screenshot_04_create_branch_dialog.png" |
| 60 | + alt="Create new branch dialog" |
| 61 | +/> |
| 62 | + |
| 63 | +Branch names can contain letters, numbers, slashes, hyphens, and underscores. Slashes are commonly used to group branches by purpose, e.g. `feature/new-onboarding`. |
| 64 | + |
| 65 | +### Branch Actions |
| 66 | + |
| 67 | +Each branch has a **⋮** menu with the following actions: |
| 68 | + |
| 69 | +<ScreenshotWrapper |
| 70 | + src="/img/docs/platform/branching/screenshot_05_branch_actions_menu.png" |
| 71 | + alt="Branch actions menu showing Rename, Protect, and Delete" |
| 72 | +/> |
| 73 | + |
| 74 | +- **Rename** — change the branch name |
| 75 | +- **Protect / Unprotect** — toggle the protected state. A protected branch is read-only; translations must be merged in, not edited directly. Useful for guarding stable branches. |
| 76 | +- **Delete** — permanently remove the branch and all its translations |
| 77 | + |
| 78 | +:::caution |
| 79 | +Deleting a branch is permanent. All translations that exist only in that branch will be lost. |
| 80 | +::: |
| 81 | + |
| 82 | +### Merge Button |
| 83 | + |
| 84 | +The branch icon button (next to the ⋮ menu) starts a merge from that branch into the default branch. See [Merging Branches](merging_branches) for the full merge workflow. |
| 85 | + |
| 86 | +## Permissions |
| 87 | + |
| 88 | +| Action | Required permission | |
| 89 | +|--------|-------------------| |
| 90 | +| View branches and switch between them | Any project member | |
| 91 | +| Create, rename, delete, protect branches | Branch management | |
| 92 | +| Merge branches | Any project member | |
0 commit comments