Xcodeがバージョン8.0(8A218a)に更新された後、一部のファイルが競合する場合、Xcode onlyからgitリポジトリから変更をプルする問題があります。私たちは皆同じブランチに取り組んでいます。
競合がない限り、すべてが完全に機能し、コミット、プル、プッシュが可能です。
しかし、一部のファイルで競合が発生するたびに、Xcodeが競合を表示しないであることがわかりました。コンフリクトリゾルバーウィンドウを表示せずにプルポップアップウィンドウを閉じるだけです。情報も何もありません。見えない
プル成功
メッセージ。そして、メッセージを取得してコミットをプッシュすることはできません(変更がプルされないため)。
すべての変更がリモートリポジトリから取得されていることを確認して、再試行してください
terminalを使用してプルしようとしましたが、競合するファイルはgitメッセージで混乱し、それらのgitメッセージに沿って同じ競合ファイル内の私の変更や他の人の変更を示します。また、他の人が作業していたファイルは、自分の変更/追加として表示されます。
また、gitを最新バージョン(現在は2.10.0)に更新しようとしました。運もありません。
だから私は自分のコピーを削除して最新のものを複製し、私が行った変更を再適用することになりますが、これは非常に迷惑です。
誰にもこれに対する解決策がありますか?
編集:ここに端末を使用した回避策としてできることを示します:
ターミナルを開いて、Xcodeユーティリティがどこにあるかをシステムに伝えます。
Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
「opendiff」をデフォルトのmergetoolとしてグローバルに設定します。
git config --global merge.tool opendiff
Xcode mergetoolを手動で開き、通常の方法で競合を取り除きます。
git mergetool
変更を保存、コミット、プッシュ。
ターミナルでgitを使用してこの問題を解決します。mergetoolが使用されます。最初に、いくつかの変更を行いますが、おっと、最新ではありません:
git fetch Origin
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Updating a030c3a..ee25213
error: Entry 'filename.c' not uptodate. Cannot merge.
そのため、最新の状態に戻して再試行しますが、競合が発生します。
git add filename.c
git commit -m "made some wild and crazy changes"
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Auto-merging filename.c
CONFLICT (content): Merge conflict in filename.c
Automatic merge failed; fix conflicts and then commit the result.
そこで、変更点を確認することにしました。
git mergetool
mergetoolを使用して競合をマージします
changes...no...their changes...
git checkout --ours filename.c
git checkout --theirs filename.c
git add filename.c
git commit -m "using theirs"
そして最後の時間を試します
git pull Origin master
From ssh://[email protected]:22/projectname
* branch master -> FETCH_HEAD
Already up-to-date.
次の一連のアクションでこの問題を解決します。
Xcodeを終了
ターミナルを開き、プロジェクトのフォルダーに移動します
git checkout-。
git pull
Pullコマンドの出力を見てください。ファイルの1つに競合があることを通知する必要があります。このファイルを外部エディター(Xcodeではない)で開きます。ファイルには、競合を説明する特別なマーカーが含まれているはずです(GITによって追加されました)。マーカーは次のようになります。
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
マーカーを削除して競合を解決します
git add [ファイル名]
git commit -m "[ファイル名]の競合を解決しました"
git Push
Xcode 8.2.1に更新してください
私は同じ問題を抱えていましたが、Xcodeバージョンを8.2.1に更新すると解決します。
Xcodeバージョン8.1で直面していたすべての競合を今日解決しました。
xcodeを最新バージョンに更新し、パートナーも同じバージョンを使用していることを確認してください