ソース追跡で識別される変更のプルおよびプッシュ
このプロセスは反復的なプロセスです。最初にリモートとローカルの変更の状況を取得します。競合が存在する場合は解決します。これらの変更が組織とローカルプロジェクトの両方に存在していることを確認する必要があります。そこで、リモートの変更をプルし、ローカルプロジェクトとバージョン管理システムにすべての情報が含まれるようにして、ローカルプロジェクトとバージョン管理システムが履歴情報源になるようにします。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 DevSandboxforce:source:status を再び実行します。
1=== Source Status
2No results foundコマンドを実行しても結果が報告されません。これは、ローカルプロジェクトと組織が同期されていることを意味します。