不能忽略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来清除事件。

  1. git rm –cached YourProjectFolderName .xcodeproj / project.xcworkspace / xcuserdata / yourUserName .xcuserdatad / UserInterfaceState.xcuserstate

  2. git commit -m“删除不应该被跟踪的文件”

  3. 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忽略,然后提交代码:)

在这里输入图像说明