提交或放弃更改,然后重试

时间:2013-04-22 12:44:35

标签: xcode git version-control ignore

当我想将源代码推送到远程控制时,我遇到了问题。但是xcuserstate文件总是被改变,Git宣布“提交或放弃更改并再试一次”。所以我试图忽略xcuserstate文件,但我不能 enter image description here

如何解决?

1 个答案:

答案 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"