不能忽略UserInterfaceState.xcuserstate
我使用Git进行Xcode 4项目版本控制。 我已经明确地将ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate
到.gitignore
,但Git它不会忽略它。 任何想法,为什么这样呢?
Git可能已经在跟踪文件了。
从gitignore文档 :
要停止跟踪当前跟踪的文件,请使用git rm –cached 。
使用这个,用你的信息replace[project]
和[username]
:
git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate git commit -m "Removed file that shouldn't be tracked"
或者,您可以使用-a
选项进行git commit
,以添加所有已修改或删除的文件。
一旦你从git中删除文件,它会尊重你的.gitignore
。
如果被忽略的文件一直显示在未跟踪的列表中,则可以使用git clean -f -d来清除事件。
-
git rm –cached YourProjectFolderName .xcodeproj / project.xcworkspace / xcuserdata / yourUserName .xcuserdatad / UserInterfaceState.xcuserstate
-
git commit -m“删除不应该被跟踪的文件”
-
git clean -f -d
有一个朋友告诉我这个神奇的网站https://www.gitignore.io/ 。 input您select的IDE或其他选项,它会自动生成一个包含有用忽略的gitignore
文件,其中之一是xcuserstate
。 您可以在下载之前预览gitignore
文件。
如果在执行这里提到的所有事情之后文件仍然显示,请确保Xcode设置中的这个checkbox未被选中:
所有答案都很好,但是如果你在不同的Mac(家庭和办公室)工作,
git rm --cache */UserInterfaceState.xcuserstate git commit -m "Never see you again, UserInterfaceState"
只是“git clean -f -d”为我工作!
这里是一个非常好的解释如何从你的git历史recursion地删除问题的文件: http : //help.github.com/remove-sensitive-data/
非常有用,因为否则工具往往会“挂起”,同时试图显示差异在那些应该不被检查的巨大文件…
下面是你可以做的(简而言之)摆脱最大的东西:
cd YourProject git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r YourProject.xcodeproj/project.xcworkspace' HEAD # see what you want to do with your remote here... # you can: git push origin master --force # or you can delete it and push a fresh new one from your cleaned-up local... rm -rf .git/refs/original git gc --prune=now git gc --aggressive --prune=now
为我工作很好:)
对于xcode 8.3.3我只是检查了上面的代码,并观察到,现在在这种情况下,我们必须改变命令来这样
首先你可以用.gitignore创build一个文件
touch .gitignore
之后你可以使用这个命令删除所有的userInterface文件,使用这个命令它会尊重你的.gitignore文件。
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate git commit -m "Removed file that shouldn't be tracked"
这里有一些演示和捷径,如果你使用GitHub,基本的想法是一样的。
1.像这样打开terminal
2.将以下命令粘贴到terminal,然后粘贴一个空格,然后像这样粘贴.xcuserstate文件的path
git rm --cached
3.确保你有正确的git忽略,然后提交代码:)