競合の解決

バージョンをダウンロードしてローカルで編集している間に、他のユーザーが Design Center で同じバージョンを編集してしまうケースがあります。この結果、Git で競合が発生します。

たとえば、ファイルを分岐で編集したときに、他のユーザーが Design Center の同じブランチで同じファイルを編集した場合などです。変更をプッシュしようとすると、Git は変更を Design Center 側のバージョンに高速転送できないため、プッシュコマンドを拒否します。この場合は、変更されているバージョンに対して変更をどのように適用するかを Git に指示する必要があります。

  1. [Package Explorer] ビューで API 仕様プロジェクトを右クリックして、​[Team (チーム)]​ > ​[Switch To (切り替え先)]​ > ​[Push Branch…​ (分岐のプッシュ…​)]​ を選択します。

    push branch
  2. ファイルが競合しているため、Git はプッシュを拒否します。

    conflict
  3. Design Center からローカルバージョンに変更を取得します。

    pull changes
  4. Git がフラグを付けた競合を評価します。

    flagged commit
1 ローカルコミットに競合のフラグが付けられている。
2 他の競合ユーザーによるコミットに競合のフラグが付けられている。
  1. Git は、API エディタービューでファイルの競合部分にフラグを付けます。

    resolve marked conflict
    <<<<<<< HEAD
              - LAX
              - CLE
    ======= (1)
              - CLE
              - LAX
    >>>>>>> branch 'add-flights-path' of https://anypoint.mulesoft.com/ (2)
    1 HEAD​ と ​=======​ の間のすべてがローカルでの変更内容です。
    2 =======​ と ​branch …​​ の間のすべてが Design Center で競合している変更内容です。

    この場合は、別のユーザーが次の定義を

    /flights:
      get:
        queryParameters:
          destination:
            required: false
            enum:
              - SFO
              - LAX
              - CLE

    次のように変更しています。

    /flights:
      get:
        queryParameters:
          destination:
            required: false
            enum:
              - SFO
              - CLE
              - LAX

    Git はどちらの変更を優先すべきかがわからないため、競合が発生しています。

  2. 保存しない変更を削除します。

    push conflict changes
1 ファイルに変更が残っていることを確認します。
2 変更をインデックスに追加します。
  1. [Commit and Push (コミットしてプッシュ)]​ を選択します。

Studio と Design Center の間のコピーが最新の変更に同期します。