ソース コードをリモート コントロールにプッシュしたいときに問題が発生しました。ただし、xcuserstate ファイルは常に変更されており、Git は「変更をコミットまたは破棄して、もう一度やり直してください」とアナウンスします。だから私はxcuserstateファイルを無視しようとしましたが、できません
どうすれば解決できますか???
ソース コードをリモート コントロールにプッシュしたいときに問題が発生しました。ただし、xcuserstate ファイルは常に変更されており、Git は「変更をコミットまたは破棄して、もう一度やり直してください」とアナウンスします。だから私はxcuserstateファイルを無視しようとしましたが、できません
どうすれば解決できますか???
エラーメッセージは、何をすべきかについてかなり具体的です。ファイルをコミットする (変更を保持したい場合) か、ファイルを破棄する(変更を気にしない場合)。
cuser ファイルは通常、xcode プロジェクトの奥深くに隠されているため、それらへのフル パスを提供することをお勧めします (次の例find
では、サブディレクトリでこれらのファイルを検索するために使用します)。
これにより、現在のディレクトリ内のすべてのcuser ファイルがコミットされます。
$ git add $(find . -name "*.xcuserstate" -or -name "*.xcuserdata")
$ git commit $(find . -name "*.xcuserstate" -or -name "*.xcuserdata") -m "updated xcuser stuff"
これにより、現在のディレクトリ内のすべてのcuser ファイルからの変更が破棄されます。
$ git checkout $(find . -name "*.xcuserstate" -or -name "*.xcuserdata")
通常、xcuser-stuff をまったく追跡したくないので、リポジトリから削除して、誤って追加されないようにする必要があります。
# remove cuser-stuff from the repository (but not locally)
$ git rm --cached $(find . -name "*.xcuserstate" -or -name "*.xcuserdata")
# commit the file removal
$ git commit $(find . -name "*.xcuserstate" -or -name "*.xcuserdata") -m "don't track cuser stuff"
# prevent the cuser-stuff from accidentally adding it
$ echo "*.cuserdata" > .gitignore
$ echo "*.cuserstate" > .gitignore
$ git add .gitignore
$ git commit .gitignore -m "don't track user-specific data"