Xcodeのソース管理のみを使用して、まったく異なるアプローチでこれを解決しました。
背景: 別のチームが (Beanstalk 経由で) リモート Git リポジトリに変更をプッシュしました。私の側では、.xcodeproj ファイルは別のディレクトリにあり、変更は行われませんでした。その後、コミットしようとすると、Xcode で Tree Conflict エラーが発生しました。
ツリー競合のスクリーンショット
Xcode を使用して修正することはほとんど不可能であるため、.xcodeproj ファイルを Git サーバーからダウンロードしたバージョンに置き換えました。その結果... Xcode プロジェクトは解決されたように見えましたが、破損したプルからのすべての更新は、私が行った変更として表示され、コミットのためにステージングされました。これらすべての Mod と追加されたファイルを見てください。ただし、コミットしようとすると、同じ「致命的: マージ中に部分的なコミットを行うことはできません」というエラーが表示されました。ここで説明します。
これが私が問題をどのように解決したかです...(今、私は新人プログラマーなので、理解が足りないことを理解してください...しかし、私の無知はこれを行う別の方法を見つけることにつながりました。)最初に、マスターをクローンしました2 次ブランチに分岐し、そのブランチに切り替えます。次に、作業コピーを作成し、その作業コピーのディレクトリを元のプロジェクト ディレクトリの外に配置しました。(これが必要かどうかはわかりませんが、他のトラブルシューティング手法を読んだときに行ったことです。)次に、ブランチをマスターに切り替えました。そこで、ステージングされたすべてのファイル(コミットへの変更)がなくなっていることに気付きました。すべてのファイルが相手による最新の変更に更新されていることを確認するために、すべてのファイルを複製する ThirdBranch という新しいブランチを作成しました。それを Git サーバーにプッシュし、Beanstalk に私のサーバー バージョンのマスター ブランチと、プッシュしたばかりの ThirdBrach ブランチを (行ごとに) 比較させました。相手によるすべての変更が Xcode に存在していました。これは、私のマスター リポジトリと Git マスター リポジトリが同じであることを意味し、Xcode のみを使用して問題を解決したことを確認します。
私が今説明したことを超えて、どうやって私に尋ねないでください...そして、私が残したギャップを確実に埋めてください. 私はこれが初めてで、すべてを理解していません。たぶん、経験豊富なプログラマーなら、関係のない情報を関連する情報から切り離して、このテクニックをより明確に再現できるでしょう。