我使用Git进行Xcode 4项目版本控制。我明确地添加了ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState。xcuserstate到.gitignore,但是Git不会忽略它。有人知道为什么吗?
当前回答
这里有一个关于如何递归地从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
对我来说非常有用:)
其他回答
有个朋友给我看了这个很棒的网站https://www.gitignore.io/。输入您选择的IDE或其他选项,它将自动生成一个由有用的忽略组成的gitignore文件,其中之一是xcuserstate。您可以在下载之前预览gitignore文件。
如果您正在使用源树应用程序,这里有一个更简单的解决方案。 以下是使用说明
1.右键单击要添加到git忽略列表中的文件并选择停止跟踪。
再次右键单击相同的文件,你会注意到忽略选项现在启用,然后单击忽略按钮。
现在,您可以为同一个文件重置或提交更改,这取决于您的更改是否重要。将来所选文件的更改将不会被跟踪。
如果被忽略的文件一直出现在未跟踪列表中,你可以使用git clean -f -d 把事情弄清楚。
1.
git rm --cached {YourProjectFolderName}.xcodeproj/project.xcworkspace/xcuserdata/{yourUserName}.xcuserdatad/UserInterfaceState.xcuserstate
2.
git commit -m "Removed file that shouldn't be tracked"
3. 警告:首先尝试git clean -f -d——dry-run,否则你可能会丢失未提交的更改。
然后: Git清除-f -d
如果你使用GitHub,这里有一些演示和快捷方式,基本思想是一样的。
1. 像这样打开终端
2. 将下面的命令粘贴到终端,后面加一个空格,然后像这样粘贴.xcuserstate文件的路径
Git rm——缓存
3.确保你有正确的git忽略,然后提交代码:)
对我来说什么都没用,除了这个
把这条线加到你的gitignore里
*.xcuserdata
推荐文章
- Ios模拟器:如何关闭应用程序
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- 准备好开发人员ID的macOS安装程序包
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 创建配置文件失败
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支