この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

ソース追跡で識別される変更のプルおよびプッシュ

Salesforce アプリケーションを作成するときは、通常、ローコードとプロコードの両方の手法を使用します。ローコードとは、たとえば、[設定] を使用して組織で直接カスタムオブジェクトを作成するような手法を指します。プロコードとは、たとえば、VS Code などの IDE を使用して、ローカルプロジェクトで Apex クラスを作成するような手法を指します。作業中、ソース追跡によって変更が識別されるため、組織のリモートメタデータとローカルプロジェクトのソースを常に同期できます。

このプロセスは反復的なプロセスです。最初にリモートとローカルの変更の状況を取得します。競合が存在する場合は解決します。これらの変更が組織とローカルプロジェクトの両方に存在していることを確認する必要があります。そこで、リモートの変更をプルし、ローカルプロジェクトとバージョン管理システムにすべての情報が含まれるようにして、ローカルプロジェクトとバージョン管理システムが履歴情報源になるようにします。Apex コードなどのローカルの変更を組織にプッシュすると、その変更を検証およびテストできるようなります。Salesforce アプリケーションの開発が終了するまでこのプロセスを反復し続けます。

いくつかの例でソース追跡の動作を確認しましょう。

たとえば、force:source:status を実行して、ローカルおよびリモートの変更を確認するとします。

1=== Source Status
2STATE                     FULL NAME         TYPE            PROJECT PATH
3──────────                ───────────       ─────────       ─────────────────────────────
4Local  Add                WidgetClass       ApexClass      ./classes/WidgetClass.cls-meta.xml
5Local  Add                WidgetClass       ApexClass      ./classes/WidgetClass.cls
6Remote Changed            Widget__c         CustomObject   ./objects/Widget__c/Widget__c.object-meta.xml
7Remote Deleted            Widget__c.all     ListView       ./objects/Widget__c/listViews/All.listView-meta.xml
8Remote Add                WidgetPermissions PermissionSet

この場合は、変更をプルし、競合を解決してから、変更を組織にプッシュすることをベストプラクティスとしてお勧めします。この方法を使用すると、他の開発者が変更を容易に取り込むことができ、ほとんどの場合、コラボレーションが促進されます。競合を解決する方法については、「ローカルプロジェクトと組織間の競合の解決」を参照してください。

1sfdx force:source:pull -u DevSandbox

ソースをプルしたら force:source:status を再度実行します。以上でソース追跡では、ローカルの変更のみが報告されるようになります。これは、プルによってローカルプロジェクトが組織の内容に一致するように更新されたためです。

1=== Source Status
2STATE                     FULL NAME      TYPE            PROJECT PATH
3──────────                ───────────    ─────────       ─────────────────────────────
4Local  Add                WidgetClass    ApexClass       ./classes/WidgetClass.cls-meta.xml
5Local  Add                WidgetClass    ApexClass       ./classes/WidgetClass.cls

次に、ローカルの変更をプッシュします。プッシュを行った後、他の開発者に組織内の変更がリモートの変更として表示されます。

1sfdx force:source:push -u DevSandbox

force:source:status を再び実行します。

1=== Source Status
2No results found

コマンドを実行しても結果が報告されません。これは、ローカルプロジェクトと組織が同期されていることを意味します。