# gt: General Translation CLI tool: ブランチごとに翻訳を追跡する
URL: https://generaltranslation.com/ja/docs/cli/guides/branching.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 機能開発中に、General Translation で Git ブランチごとに翻訳を個別に追跡する方法です。

フィーチャーブランチでコンテンツを追加または変更し、その翻訳をブランチがマージされるまで本番環境から切り離しておきたい場合に使用します。

*注: Branching は General Translation Cloud の機能であり、Starter プランが必要です。Starter プランがない場合、デフォルト以外のブランチを作成しようとしても、デフォルトブランチにフォールバックします。*

## Branching を有効にする [#enable]

[`gt translate`](/docs/cli/reference/commands/translate) コマンドに `--enable-branching` を指定します。CLI が現在の git ブランチを検出し、新しい翻訳をそのブランチに関連付けます。

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

Git から自動検出する代わりにブランチ名を自分で指定するには、`--branch` を追加します。

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

`gt.config.json` でも Branching を有効にできます。CLI フラグはこれらの値よりも優先されます。

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

## 継承の仕組み [#inheritance]

Branching が有効な場合、CLI は現在のブランチとデフォルトブランチ (リモートの HEAD に基づく) を特定し、それらの関係を追跡します。

* **チェックアウト中のブランチ:** 現在のブランチの作成元になったブランチです。新しいフィーチャーブランチは、そこにある既存の翻訳をすべて引き継ぐため、共通のコンテンツが再翻訳されたり、二重課金されたりすることはありません。
* **流入ブランチ:** 現在のブランチにマージされたブランチです。それらの翻訳は現在のブランチに取り込まれます。

新しい翻訳は、そのフィーチャーブランチがマージされるまで関連付けられたままになります。デフォルトブランチにマージすると、フィーチャーブランチの翻訳も自動的にそこへ取り込まれます。

## ワークフローの例 [#workflow]

1. フィーチャーブランチを作成し、新しいコンテンツを追加します。

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

2. Branching を有効にして翻訳します。新しい翻訳は `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` を追加すると、incoming ブランチと親ブランチの追跡をスキップできます。

```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.
