Can't exclude user interface state from commit in xcode

∥☆過路亽.° 提交于 2019-12-20 08:39:57

问题


I can't exclude user interface state file from commit.

Every time I'm trying to push to github it asks me to commit first and insert user interface state file into the changes (even if I didn't move the mouse or interface at all it still is shown to commit!).

I tried different methods, described in other similar topics. For example, I tried to add all possible cases of user interface into the .gitignore in root, like this:

*.xcuserstate
project.xcworkspace
xcuserdata
UserInterfaceState.xcuserstate
project.xcworkspace/
xcuserdata/
UserInterface.xcuserstate

It didn't work. I tried to clean the cache and reset git, didn't help.

Git status command says the following: "modified: .xcodeproj/project.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate"

And it looks like this

Please help (it is driving me crazy)!


回答1:


If those files are already committed, you need to remove them from the index before seeing your .gitignore file work.

git rm --cached *.xcuserstate
# or
git rm -r --cached project.xcworkspace



回答2:


To add on to VonC's answer after calling -rm you also have to commit and then push (do this in the terminal BEFORE touching Xcode or it's git tools again), that solved my problem.

So

git rm --cached *.xcuserstate
git commit -m "Removed cached files"
git push

Then you can touch Xcode again



来源:https://stackoverflow.com/questions/17312775/cant-exclude-user-interface-state-from-commit-in-xcode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!