# gt: General Translation CLI tool: Отслеживание переводов по веткам
URL: https://generaltranslation.com/ru/docs/cli/guides/branching.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как отслеживать переводы отдельно для каждой git-ветки в General Translation, пока вы работаете над новыми функциями.

Используйте ветвление, если функциональная ветка добавляет или изменяет контент и вы хотите, чтобы эти переводы оставались изолированными от продакшена, пока ветка не будет объединена.

*Примечание: ветвление — это функция General Translation Cloud, для которой требуется тариф Starter. Без Starter создание ветки, отличной от ветки по умолчанию, приведёт к использованию ветки по умолчанию.*

## Включите ветвление [#enable]

Передайте `--enable-branching` команде [`gt translate`](/docs/cli/reference/commands/translate). CLI автоматически определит текущую ветку Git и свяжет с ней новые переводы.

```bash
npx gt translate --enable-branching
```

Чтобы указать имя ветки вручную, а не определять его из git, добавьте `--branch`.

```bash
npx gt translate --enable-branching --branch my-feature-branch
```

Вы также можете включить ветвление в `gt.config.json`. Флаги CLI имеют приоритет над этими параметрами.

```json title="gt.config.json"
{
  "branchOptions": {
    "enabled": true,
    "autoDetectBranches": true,
    "remoteName": "origin"
  }
}
```

## Как работает наследование [#inheritance]

Когда ветвление включено, CLI определяет вашу текущую ветку и ветку по умолчанию (по удалённому HEAD), а затем отслеживает их взаимосвязь:

* **Исходная ветка:** ветка, от которой была создана ваша. Новая функциональная ветка наследует из неё все существующие переводы, поэтому общий контент не переводится заново и за него не взимается плата дважды.
* **Входящие ветки:** ветки, влитые в вашу. Их переводы включаются в вашу ветку.

Новые переводы остаются привязанными к вашей функциональной ветке до её слияния. После слияния обратно в ветку по умолчанию переводы из функциональной ветки автоматически включаются и в неё.

## Пример рабочего процесса [#workflow]

1. Создайте функциональную ветку и добавьте новый контент.

   ```bash
   git checkout -b feature/new-landing-page
   ```

2. Запустите перевод с включённым ветвлением. Новые переводы будут привязаны к `feature/new-landing-page`.

   ```bash
   npx gt translate --enable-branching
   ```

3. Слейте функциональную ветку, затем запустите перевод в ветке по умолчанию, чтобы включить её переводы.

   ```bash
   git checkout main
   git merge feature/new-landing-page
   npx gt translate --enable-branching
   ```

## Устранение проблем с определением ветки [#troubleshoot]

* **Ветка не определяется:** укажите её вручную с помощью `--branch <branch>`.
* **Нестандартный удалённый репозиторий:** если ваш удалённый репозиторий — не `origin`, укажите `--remote-name <name>` или `branchOptions.remoteName`.
* **Использовать только текущую ветку:** добавьте `--disable-branch-detection`, чтобы отключить отслеживание входящей и родительской веток.

```bash
npx gt translate --enable-branching --branch my-branch --disable-branch-detection
```

## Next steps

- /docs/cli/guides/generating-translations
- /docs/cli/guides/managing-translations
- /docs/cli/guides/configuring
- /docs/cli/guides/using-auto-jsx

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
