ローカルプロジェクトと組織間の競合の解決
ローカルプロジェクトまたは組織内でコンポーネントが競合している場合は、プッシュまたはプルの前に競合を解決することをベストプラクティスとしてお勧めします。競合を解決するには、最善の方法が 2 つあります。1 つは、競合する変更を手動で取り込む方法、もう 1 つは、一方の競合する変更を他方の競合する変更で上書きする方法です。通常は、競合する変更を手動で取り込むのが最善の方法です。一方の変更を上書きすると、作業が消去される場合があるためです。
たとえば、force:source:status を実行して、ローカルプロジェクトおよび組織内の競合する変更を確認するとします。
1=== Source Status
2STATE FULL NAME TYPE PROJECT PATH
3───────────── ───────── ───────── ──────────────────────────────────────────────────────────────────
4Local Add (Conflict) WidgetClass ApexClass /WidgetClass.cls-meta.xml
5Local Add (Conflict_ WidgetClass ApexClass /WidgetClass.cls
6Remote Changed (Conflict) Widget__c CustomObject force-app/main/default/objects/Widget__c/Widget__c.object-meta.xmlソースがプルまたはプッシュされると、CLI は、これらの競合を再度報告し、操作が完了しないようにします。プルまたはプッシュを行うには、競合を解決し、ローカルプロジェクトまたは組織を解決済みのファイルで上書きします。
競合する変更の上書き
競合する変更を上書きするには、変更をプルまたはプッシュするときに -f | --forceoverwrite パラメータを指定します。
ローカルプロジェクトの変更を組織からのソースで上書きするには、変更をプルするときに -f | --forceoverwrite パラメータを指定します。
1sfdx force:source:pull -u DevSandbox -fソースをプルすると、ローカルプロジェクトの WidgetClass および Widget__c が、Salesforce 上に存在していたものと同じバージョンになります。ローカルプロジェクト内に変更があった場合、それらの変更は失われます。
組織をローカルプロジェクトからのソースで上書きするには、変更をプッシュするときに -f | --forceoverwrite パラメータを指定します。
1sfdx force:source:push -u DevSandbox -fソースをプッシュすると、組織の WidgetClass および Widget__c が、ローカルプロジェクト上に存在するものと同じバージョンになります。組織内に変更があった場合、それらの変更は、別の開発者のローカルプロジェクトに存在しない限り失われます。