# gt: General Translation CLI tool: ブランチごとに翻訳を追跡する URL: https://generaltranslation.com/ja/docs/cli/guides/branching.mdx --- title: ブランチごとに翻訳を追跡する description: 機能開発中に、General Translation で Git ブランチごとに翻訳を個別に追跡する方法です。 related: links: - /docs/cli/guides/generating-translations - /docs/cli/guides/managing-translations - /docs/cli/guides/configuring - /docs/cli/guides/using-auto-jsx --- Branching では、Git の各ブランチごとに翻訳を個別に管理できます。フィーチャーブランチでコンテンツを追加または変更し、その翻訳をブランチがマージされるまで本番環境から切り離しておきたい場合に使用します。 *注: Branching は General Translation Cloud の機能であり、有料プランが必要です。有料プランがない場合、デフォルト以外のブランチを作成しようとしても、デフォルトブランチにフォールバックします。* ## 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 ` で手動で設定してください。 * **標準以外のリモートを使用している:** リモートが `origin` でない場合は、`--remote-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