web-dev-qa-db-ja.com

yarn.lockでgitの競合をどのように解決しますか

複数のgitブランチが Yarn を使用するプロジェクトの依存関係を変更する場合、yarn.lockファイルに競合が発生する可能性があります。 yarn.lockファイルを削除して再生成することはお勧めできません。これにより、いくつかのパッケージが意図せずにアップグレードされる可能性があります。このファイルの競合を迅速に解決する最良の方法は何ですか?

55

Yarn 1.0以降 このシナリオのサポートが組み込まれているため、簡単です。これを実行するだけです:

$ yarn install

yarn install v1.0.1
info Merge conflict detected in yarn.lock and successfully merged.
[1/4] Resolving packages...

これで、必要なことはgit add yarn.lock && git rebase --continue

96
Vanuan

良いアプローチは このgithubの議論 問題について詳しく説明されています。

git rebase Origin/master

最初の競合が発生したら、yarn.lockをチェックアウトしてから、インストールを再実行します

git checkout Origin/master -- yarn.lock 
yarn install

これは、Origin/masterバージョンのyarn.lockに基づいて新しいyarn.lockを生成しますが、package.jsonに加えた変更を含みます。それはただの問題です:

git add yarn.lock
git rebase --continue
45