0

Xcode 4.6 では、git ステータスの動作が非常に不安定です。以下は、新しくコミットした後の例です (ターミナルの "git status" は変更がないことを示しています)。

  1. ファイルを変更すると、サイドバーの横に「M」が表示されます。
  2. 「ファイル -> ソース管理 -> ステータスの更新」に移動すると、「M」が消えます!
  3. 「ファイル -> ソース管理 -> ステータスの更新」に移動すると、「M」が再び表示されます。

必要に応じて手順 2 または 3 を繰り返します。"M" と "no-M" の間の代替を常に更新します。これを引き起こしている可能性があるのは何ですか?何か思い当たりますか?

これを何らかの形でデバッグして、何が起こっているのかを追跡できますか?

DerivedData 全体を削除し、Organizer のリポジトリをクリアし、Xcode を再起動しようとしましたが、何も役に立ちません。

4

2 に答える 2

0

私の場合、この問題は、プロジェクト ファイルとフォルダーを含め、リポジトリ内の多くのファイルの名前を "CamelCase" から "小文字" に変更したことが原因であることが判明しました。これはどこかで不適切に追跡されたに違いありません。

OS X はデフォルトで大文字と小文字を区別しないファイルシステムを使用しますが、git は内部的に大文字と小文字を区別します。問題はこれに関係していると思います。

これらは、これを修正するために使用した手順です。ファイル名の大文字と小文字の変更が問題の原因であると思われる場合は、これも役立つ可能性があります。

  1. リポジトリのルートに移動し、「ls -la」(すべての隠しファイルも表示するため) および「rm」/「rm -rf」コマンドを使用して、.git フォルダー以外のすべてをリポジトリから削除します。
  2. 「git reset --hard」を実行して、すべてのファイルを元に戻します。ファイル名の大文字と小文字が変更されていることがわかります。私の場合、作業コピーのルートで、「myapp.xcodeproj」と「myapp」(すべてのコード ファイルを含むフォルダー) が「MyApp.xcodeproj」と「MyApp」(フォルダー) に変更されました。小文字に変更したと思っていたのですが、どうやら、これは git によって適切に追跡されていなかったようです。
  3. ここで、ファイルの名前を無関係なものに変更します。たとえば、「MyApp.xcodeproj」を「foo.xcodeproj」に、「MyApp」を「foo」に名前を変更しました。
  4. 次に、「git add --all」を実行します
  5. 次に、ファイルの名前を必要な名前に変更します。「foo.xcodeproj」を「myapp.xcodeproj」に、「foo」を「myapp」に名前を変更しました。
  6. 別の「git add --all」を実行します。
  7. 専念。

これで、Xcode プロジェクトとまったく同じファイル (大文字と小文字がまったく同じ) が git に表示されるようになったため、生活が改善され、Xcode が適切に動作するはずです。

于 2013-02-22T21:16:38.673 に答える
0

コミットを続けると、「M」が消えて数秒後に再び表示され、再度コミットしようとすると、再度コミットできますが、すべてのファイルがゼロの変更を示しています。そしてMが消えてまた現れる。

これを修正する唯一の方法は、奇妙なことに、コードにコメントを挿入してからコミットすることでした。Mが消えるはずです。

于 2013-02-22T14:29:28.813 に答える