Umgang mit Merge-Konflikten

Wie man Merge-Konflikte verhindert und löst

Einführung

Merge-Konflikte können auftreten, wenn sich die i18n.lock Datei zwischen Branches unterscheidet. Dies geschieht typischerweise, wenn Übersetzungen unabhängig voneinander in verschiedenen Branches aktualisiert werden.

Diese Seite bietet einige Optionen zur Vermeidung und Lösung von Merge-Konflikten.

Option 1: Übersetzungen direkt in den main Branch committen

Einer der verfügbaren Workflows besteht darin, Übersetzungen zu generieren, wenn Änderungen in den main Branch gemergt werden, und diese Änderungen automatisch direkt zurück in den Branch zu committen. Dieser Workflow verhindert Merge-Konflikte, da von vornherein kein Merging stattfindet.

Um mehr zu erfahren, siehe Auswahl eines Workflows.

Option 2: Merge mit Lockfile-Regenerierung

Beim Mergen von Branches mit konfligierenden i18n.lock Dateien können Sie den Konflikt lösen, indem Sie die Lockfile entfernen und nach Abschluss des Merges neu generieren.

  1. Starten Sie den Merge:

    git merge <branch-name>
    
  2. Löschen Sie die konfligierende Datei:

    rm i18n.lock
    
  3. Stagen Sie die Änderungen:

    git add .
    
  4. Führen Sie den Merge durch:

    git merge --continue
    
  5. Regenerieren Sie die i18n.lock Datei:

    npx lingo.dev lockfile --force
    

    Hinweis: Dieser Befehl wird die Übersetzung von Inhalten nicht auslösen.

Option 3: Rebase mit Lockfile-Regenerierung

Ähnlich wie beim Mergen können Sie beim Rebasing von Branches mit konfligierenden i18n.lock Dateien Konflikte lösen, indem Sie die Lockfile entfernen und neu generieren.

  1. Starten Sie den Rebase:

    git rebase <branch-name>
    
  2. Löschen Sie die konfligierende Datei:

    rm i18n.lock
    
  3. Stagen Sie die Änderungen:

    git add .
    
  4. Setzen Sie den Rebase fort:

    git rebase --continue
    
  5. Regenerieren Sie die i18n.lock Datei:

    npx lingo.dev lockfile --force
    

    Hinweis: Dieser Befehl wird die Übersetzung von Inhalten nicht auslösen.