提交代码时,一直提示有未提交的文件,发现UserInterfaceState.xcuserstate这个文件一直在自动更新,即使我的代码没改变,提交时也有它。后来百度到这是Xcode自带的文件,不应该被提交到版本管理中
(这篇文张中的一段:iOS开发那些事-Git在Xcode中的配置与使用)
其中HelloWorld.xcodeproj属于包文件,它内部的很多东西是不能提交的,包括:project.xcworkspace和xcuserdata,它们是与用户有关的。Git中有一个.gitignore配置文件,在这个文件中可以设置被忽略的文件。
后来百度到,在终端键入下面3句,可以在提交代码时忽略掉UserInterfaceState.xcuserstate文件
git rm --cached [YourProjectName].xcworkspace/xcuserdata/[YourUsername].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
git push
但前提是:
得先在工程目录(和.git仓库同路径的目录下)配置有 .gitignore 文件,它才能生效!我今晚就入了这个坑,因为没配置 .gitignore文件,这3句代码一直无效。所以要先配置 .gitignore文件。
新建.gitignore然后再里面声明要忽略的文件夹或者文件,必须使用终端
-
在需要创建 .gitignore 文件的文件夹(在项目目录下即.git同目录的命令行下)。
进入命令行,进入项目所在目录。
-
输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。
然后在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。
直接复制下面的内容到你的.gitignore文件即可。注意,这个配置是给iOS开发者使用的。
# Xcode
.DS_Store
*/build/*
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
*.hmap
*.xccheckout
*.xcworkspace
!default.xcworkspace
#CocoaPods
Pods
!Podfile
!Podfile.lock
这样就配置完成 .gitignore文件,
然后在终端执行前面那3句操作,
再试下提交代码,就没有UserInterfaceState.xcuserstate文件了。