Невозможно игнорировать UserInterfaceState.xcuserstate

Я использую Git для управления версией проекта Xcode 4. Я явно добавил ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate в .gitignore, но Git он не будет игнорировать его. Любые идеи, почему это так?

Ответ 1

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.

Ответ 2

В случае, если проигнорированный файл продолжал появляться в списке без отслеживания, вы можете использовать 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

Ответ 3

Весь ответ велик, но вот он удалит для каждого пользователя, если вы работаете в другом Mac (домашнем и офисном)

git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"

Ответ 4

Если бы друг показал мне этот удивительный сайт https://www.gitignore.io/. Введите IDE по вашему выбору или другим параметрам, и он автоматически сгенерирует файл gitignore, состоящий из полезных игнорирования, одним из которых является xcuserstate. Перед загрузкой вы можете просмотреть файл gitignore.

Ответ 5

Если файл продолжает отображаться даже после выполнения всех упомянутых здесь действий, убедитесь, что этот флажок в настройках Xcode не установлен:

введите описание изображения здесь

Ответ 6

Просто    "git clean -f -d" работал на меня!

Ответ 7

Вот очень хорошее объяснение того, как рекурсивно удалять файлы из истории git: http://help.github.com/remove-sensitive-data/

Очень полезно, потому что в противном случае инструменты имеют тенденцию "зависать", пытаясь показать diff на тех огромных файлах, которые не должны были быть проверены в первую очередь...

Вот что вы можете сделать (короче), чтобы избавиться от самого большого материала:

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

Работала очень хорошо для меня:)

Ответ 8

Вот некоторые демонстрации и короткие сокращения, если вы используете GitHub, основные идеи одинаковы.

1. Открыть терминал, подобный этому

введите описание изображения здесь

2. Вставьте следующую команду на терминал, а затем пробел, а затем вставьте путь к файлу .xcuserstate просто так:

git rm --cached введите описание изображения здесь

3. Убедитесь, что у вас есть правильный git игнорировать и затем передать код:)

введите описание изображения здесь

Ответ 9

У меня ничего не получалось, но это

добавить эту строку в ваш gitignore

*.xcuserdata

Ответ 10

Это работает для меня

  1. Откройте папку, которая содержит файл project.xcworkspace из терминала.

  2. Напишите эту команду: git rm --cached *xcuserstate

Это удалит файл.

Ответ 11

Для xcode 8.3.3 я только что проверил проверенный код и заметил, что теперь в этом casewe необходимо изменить команды, чтобы это понравилось

сначала вы можете создать файл .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"

Ответ 12

Я думаю, что было бы лучше написать так.

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