不能忽略UserInterfaceState.xcuserstate

时间:2011-07-03 17:05:31

标签: xcode git xcode4 gitignore

我正在使用Git进行Xcode 4项目版本控制。我已明确将ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate添加到.gitignore,但Git不会忽略它。任何想法为什么会这样?

13 个答案:

答案 0 :(得分:597)

Git可能已经在跟踪该文件了。

来自gitignore docs

  

要停止跟踪当前跟踪的文件,请使用 git rm --cached

使用此功能,将[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

答案 1 :(得分:49)

如果被忽略的文件一直显示在未跟踪列表中,您可以使用 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

答案 2 :(得分:30)

所有答案都很棒,但如果你在不同的Mac(家庭和办公室)

工作,那么每个用户将删除
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"

答案 3 :(得分:16)

如果有朋友告诉我这个神奇的网站https://www.gitignore.io/。输入您选择的IDE或其他选项,它将自动生成一个由有用的忽略组成的gitignore文件,其中一个是xcuserstate。您可以在下载之前预览gitignore文件。

答案 4 :(得分:15)

如果文件在完成此处提到的所有操作后仍然显示,请确保未选中Xcode设置中的此复选框:

enter image description here

答案 5 :(得分:12)

只需     " git clean -f -d" 为我工作!

答案 6 :(得分:4)

以下是关于如何从git历史记录中递归删除有问题文件的非常好的解释: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

非常适合我:)

答案 7 :(得分:2)

对我来说没什么用,但是这个

将此行添加到您的gitignore

*.xcuserdata

答案 8 :(得分:1)

以下是一些演示&如果你使用GitHub,那么基本的想法都是一样的。

<强> 1。像这样打开终端

enter image description here

<强> 2。将以下命令粘贴到终端后跟一个空格,然后粘贴.xcuserstate文件的路径,就像这样

git rm --cached enter image description here

第3。确保你有正确的git ignore然后提交代码:)

enter image description here

答案 9 :(得分:1)

这对我有用

  1. 从终端打开包含项目文件project.xcworkspace的文件夹。

  2. 编写此命令:git rm --cached *xcuserstate

这将删除文件。

答案 10 :(得分:0)

对于xcode 8.3.3我刚检查过上面的代码并观察到,现在在这种情况下我们必须将命令更改为这样

首先,您可以使用

创建.gitignore文件
 touch .gitignore

之后,您可以使用此命令删除所有userInterface文件,并使用此命令它将尊重您的.gitignore文件。

 git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
 git commit -m "Removed file that shouldn't be tracked"

答案 11 :(得分:0)

如果您使用的是源树应用程序,这里有一个更简单的解决方案。 这是说明

1.右键单击要添加到 git ignore 列表的文件,然后选择停止跟踪。 enter image description here

  1. 再次右键单击同一个文件,您会注意到忽略选项现已启用,然后单击忽略按钮。

enter image description here

  1. 现在您可以重置或提交对同一文件的更改,这取决于您的更改是否重要。不会跟踪所选文件将来的更改。

答案 12 :(得分:-1)

我认为最好这样写。

git rm --cache * / /UserInterfaceState.xcuserstate **