当我想将源代码推送到远程控制时,我遇到了问题。但是xcuserstate文件总是被改变,Git宣布“提交或放弃更改并再试一次”。所以我试图忽略xcuserstate文件,但我不能
如何解决?
答案 0 :(得分:3)
错误消息在您应该做的事情中非常具体:提交文件(如果您想保留更改)或放弃它(如果您不关心变化。)
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"