ローカルプロジェクトと組織間の競合の解決
ローカルプロジェクトまたは組織内でコンポーネントが競合している場合は、先に進む前に競合を解決することをベストプラクティスとしてお勧めします。手動で競合を解決することも、あるバージョンのコンポーネントを別のバージョンのコンポーネントで上書きすることもできます。変更を上書きするのは、新しいバージョンが、自分が使用したいバージョンであることを確認した場合のみにしてください。
たとえば、force:source:status を実行して、ローカルプロジェクトおよび組織内の競合する変更を確認するとします。
1=== Source Status
2STATE FULL NAME TYPE PROJECT PATH
3───────────── ───────── ───────── ──────────────────────────────────────────────────────────────────
4Local Add (Conflict) WidgetClass ApexClass ./classes/WidgetClass.cls-meta.xml
5Local Add (Conflict_ WidgetClass ApexClass ./classes/WidgetClass.cls
6Remote Changed (Conflict) Widget__c CustomObject ./objects/Widget__c/Widget__c.object-meta.xmlソースがプルまたはプッシュされると、CLI は、これらの競合を再度報告し、操作が完了しないようにします。プルまたはプッシュを行うには、競合を解決し、ローカルプロジェクトまたは組織を解決済みのファイルで上書きします。
競合する変更の上書き
ローカルまたはリモートのバージョンが正しいことが間違いなければ、変更をプルまたはプッシュするときに -f | --forceoverwrite パラメータを指定して、競合する変更を上書きします。
ローカルプロジェクトの変更を組織からのソースで上書きするには、変更をプルするときに -f | --forceoverwrite パラメータを指定します。
1sfdx force:source:pull -u DevSandbox -fソースをプルすると、ローカルプロジェクトの WidgetClass と組織に存在していた Widget__c が同じバージョンになります。ローカルプロジェクト内のこれらの同じファイルのバージョンが異なっていた場合、これらのファイルは、組織に存在しているバージョンに置き換えられます。
組織をローカルプロジェクトからのソースで上書きするには、変更をプッシュするときに -f | --forceoverwrite パラメータを指定します。
1sfdx force:source:push -u DevSandbox -fソースをプッシュすると、組織の WidgetClass および Widget__c が、ローカルプロジェクト上に存在するものと同じバージョンになります。組織に含まれているこれらの同じコンポーネントのバージョンが異なっていた場合、これらのコンポーネントは、ローカル DX プロジェクトからのバージョンに置き換えられます。