# gt: General Translation CLI tool: branching URL: https://generaltranslation.com/it/docs/cli/branching.mdx --- title: branching description: Tieni traccia separatamente delle traduzioni per diversi branch Git --- ## Panoramica Il branching ti consente di gestire separatamente le traduzioni per i diversi branch Git del progetto. È utile quando lavori su branch di funzionalità che introducono nuovi contenuti o modificano testi esistenti e vuoi mantenere tali traduzioni isolate dal branch principale finché la funzionalità non viene unita. Quando il branching è abilitato, la CLI rileva automaticamente il branch Git corrente e associa le traduzioni a quel branch. Le traduzioni create su un branch di funzionalità non influiranno sulle traduzioni di produzione finché non esegui il merge. Il branching è una funzionalità di GT Cloud e richiede un piano a pagamento. Se provi a creare un branch non predefinito senza un piano a pagamento, la CLI userà automaticamente il branch predefinito. *** ## Utilizzo Per abilitare il branching, usa il flag `--enable-branching` con il comando `translate`: ```bash npx gt translate --enable-branching ``` Per impostazione predefinita, la CLI rileva automaticamente la branch Git corrente. Se invece vuoi specificare un nome branch personalizzato: ```bash npx gt translate --enable-branching --branch my-feature-branch ``` *** ## Flag | Flag | Descrizione | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------- | | `--enable-branching` | Abilita il branching per il progetto. Obbligatorio per usare il tracciamento delle traduzioni basato sui branch. | | `--branch ` | Specifica un nome di branch personalizzato invece di rilevarlo automaticamente da Git. | | `--disable-branch-detection` | Disabilita il rilevamento automatico delle relazioni tra branch. Usa solo il branch specificato manualmente. | *** ## Come funziona Quando il branching è abilitato, la CLI esegue queste operazioni: 1. **Rileva la branch corrente**: usa git per determinare su quale branch ti trovi. 2. **Identifica la branch predefinita**: determina quale branch è quella predefinita (di solito `main` o `master`) controllando il riferimento HEAD del repository remoto. 3. **Tiene traccia delle relazioni tra branch**: identifica le branch che sono state unite alla branch corrente (branch in ingresso) e la branch da cui è stata creata la branch corrente (branch padre). 4. **Associa le traduzioni alle branch**: tutte le traduzioni vengono contrassegnate con la branch corrente, così restano separate da quelle delle altre branch. 5. **Eredita le traduzioni dalle branch padre**: quando crei una nuova branch, le traduzioni vengono ereditate automaticamente dalla branch padre, così non devono essere tradotte di nuovo e non ti vengono addebitati costi doppi. ### Ereditarietà delle traduzioni Quando lavori su un feature branch, la CLI tiene traccia di: * **Branch in ingresso**: i branch che sono stati uniti al branch corrente. In questo modo, le traduzioni dei branch uniti possono essere incorporate. * **Branch di origine**: il branch da cui è stato creato il branch corrente (in genere il branch predefinito). In questo modo, il feature branch può ereditare le traduzioni esistenti. Questo significa che, quando crei un nuovo feature branch a partire da `main`, il tuo branch avrà accesso a tutte le traduzioni già esistenti in `main`. Qualsiasi nuova traduzione che crei sarà associata al feature branch finché non verrà unito. Dopo aver unito di nuovo il feature branch in `main`, le traduzioni del feature branch vengono incorporate automaticamente in `main`. *** ## Configurazione Puoi configurare le opzioni di branching nel file `gt.config.json`: ```json title="gt.config.json" { "branchOptions": { "enabled": true, "currentBranch": "my-feature-branch", "autoDetectBranches": true, "remoteName": "origin" } } ``` | Proprietà | Descrizione | Predefinito | | -------------------- | ---------------------------------------------------------------------------------------------------- | ----------- | | `enabled` | Abilita il branching per il progetto | `false` | | `currentBranch` | Imposta manualmente il nome del branch corrente (invece di rilevarlo automaticamente) | `undefined` | | `autoDetectBranches` | Rileva automaticamente le relazioni tra branch (branch in ingresso e branch di origine) | `true` | | `remoteName` | Il nome del remote Git usato per il rilevamento dei branch | `"origin"` | I flag della CLI hanno priorità sulle opzioni del file di configurazione. Ad esempio, `--enable-branching` sovrascrive `branchOptions.enabled` e `--disable-branch-detection` sovrascrive `branchOptions.autoDetectBranches`. *** ## Esempio di flusso di lavoro Ecco un flusso di lavoro tipico con il branching: 1. **Crea un feature branch**: ```bash git checkout -b feature/new-landing-page ``` 2. **Aggiungi nuovi contenuti traducibili** al tuo feature branch. 3. **Traduci con il branching abilitato**: ```bash npx gt translate --enable-branching ``` La CLI rileva che ti trovi su `feature/new-landing-page` e associa tutte le nuove traduzioni a quel branch. 4. **Continua a iterare sulla funzionalità**: eventuali traduzioni aggiuntive resteranno nel tuo feature branch. 5. **Unisci il tuo feature branch** a `main`: ```bash git checkout main git merge feature/new-landing-page ``` 6. **Esegui translate su main**: ```bash npx gt translate --enable-branching ``` La CLI rileva le traduzioni di `feature/new-landing-page` e le incorpora in `main`. *** ## Risoluzione dei problemi ### Branch non rilevato Se la CLI non riesce a rilevare il branch corrente, puoi specificarlo manualmente: ```bash npx gt translate --enable-branching --branch my-branch ``` ### Utilizzare un remote non standard Se il remote Git non si chiama `origin`, configura il nome del remote nella configurazione: ```json title="gt.config.json" { "branchOptions": { "remoteName": "upstream" } } ``` oppure utilizza il flag `--remote-name`: ```bash npx gt translate --enable-branching --remote-name upstream ``` ### Disabilitare il rilevamento delle relazioni tra branch Se vuoi usare solo il branch corrente senza tenere traccia dei branch in entrata o del branch padre: ```bash npx gt translate --enable-branching --branch my-branch --disable-branch-detection ```