Gestion des conflits de fusion

Comment prévenir et résoudre les conflits de fusion

Introduction

Des conflits de fusion peuvent survenir lorsque le fichier i18n.lock diffère entre les branches. Cela se produit généralement lorsque les traductions sont mises à jour indépendamment dans différentes branches.

Cette page présente quelques options pour prévenir et résoudre les conflits de fusion.

Option 1 : Committer les traductions directement sur la branche main

L'un des workflows disponibles consiste à générer des traductions lorsque des modifications sont fusionnées dans la branche main et à committer automatiquement ces modifications directement sur la branche. Ce workflow évite les conflits de fusion car aucune fusion n'a lieu au départ.

Pour en savoir plus, consultez Choisir un workflow.

Option 2 : Fusion avec régénération du fichier de verrouillage

Lors de la fusion de branches ayant des fichiers i18n.lock conflictuels, vous pouvez résoudre le conflit en supprimant le fichier de verrouillage et en le régénérant une fois la fusion terminée.

  1. Commencez la fusion :

    git merge <branch-name>
    
  2. Supprimez le fichier conflictuel :

    rm i18n.lock
    
  3. Indexez les modifications :

    git add .
    
  4. Fusionnez les modifications :

    git merge --continue
    
  5. Régénérez le fichier i18n.lock :

    npx lingo.dev lockfile --force
    

    Remarque : Cette commande ne déclenchera pas la traduction du contenu.

Option 3 : Rebase avec régénération du fichier de verrouillage

Similaire à la fusion, lors du rebasage de branches avec des fichiers i18n.lock conflictuels, vous pouvez résoudre les conflits en supprimant et en régénérant le fichier de verrouillage.

  1. Commencez le rebase :

    git rebase <branch-name>
    
  2. Supprimez le fichier conflictuel :

    rm i18n.lock
    
  3. Indexez les modifications :

    git add .
    
  4. Continuez le rebase :

    git rebase --continue
    
  5. Régénérez le fichier i18n.lock :

    npx lingo.dev lockfile --force
    

    Remarque : Cette commande ne déclenchera pas la traduction du contenu.