マージコンフリクトの処理

マージコンフリクトの防止と解決方法

はじめに

マージコンフリクトは、ブランチ間でi18n.lockファイルが異なる場合に発生する可能性があります。これは通常、異なるブランチで翻訳が独立して更新された場合に発生します。

このページでは、マージコンフリクトを防止および解決するためのいくつかのオプションを提供します。

オプション1:mainブランチに翻訳を直接コミットする

利用可能なワークフローの1つは、変更がmainブランチにマージされたときに翻訳を生成し、それらの変更を自動的にブランチに直接コミットすることです。このワークフローでは、そもそもマージが発生しないため、マージコンフリクトを防ぐことができます。

詳細については、ワークフローの選択を参照してください。

オプション2:ロックファイルの再生成を伴うマージ

競合するi18n.lockファイルを持つブランチをマージする場合、ロックファイルを削除し、マージ完了後に再生成することでコンフリクトを解決できます。

  1. マージを開始します:

    git merge <branch-name>
    
  2. 競合するファイルを削除します:

    rm i18n.lock
    
  3. 変更をステージングします:

    git add .
    
  4. 変更をマージします:

    git merge --continue
    
  5. i18n.lockファイルを再生成します:

    npx lingo.dev lockfile --force
    

    注意: このコマンドはコンテンツの翻訳をトリガー_しません_。

オプション3:ロックファイルの再生成を伴うリベース

マージと同様に、競合するi18n.lockファイルを持つブランチをリベースする場合、ロックファイルを削除して再生成することでコンフリクトを解決できます。

  1. リベースを開始します:

    git rebase <branch-name>
    
  2. 競合するファイルを削除します:

    rm i18n.lock
    
  3. 変更をステージングします:

    git add .
    
  4. リベースを続行します:

    git rebase --continue
    
  5. i18n.lockファイルを再生成します:

    npx lingo.dev lockfile --force
    

    注意: このコマンドはコンテンツの翻訳を_トリガーしません_。