Не могу игнорировать UserInterfaceState.xcuserstate
301
Я использую Git для контроля версий проекта Xcode 4. Я явно добавил ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstateк .gitignore, но Git это не проигнорирует. Есть идеи, почему это так?
У меня есть эта проблема, но когда я пытаюсь удалить файл xcuserstate, он говорит «не совпадает ни с одним файлом». В чем дело?
Роб Тмин
У меня та же проблема, что и у @RobCaraway
MaxGabriel
24
Это помогло мне: 1) выйти из xcode; 2) перейдите в каталог проекта и выполните «ls -la» из приложения терминала, чтобы убедиться, что вы видите файлы .git и .gitignore; 3) измените «ProjectFolder» в примере выше на имя вашего проекта; 4) выполнить две команды git, которые показывает matt; 5) Перезапустите XCode, сделайте коммит и убедитесь, что файла xcuserstate больше нет в списке.
Brainware
1
Любая идея, как сделать эквивалент в SVN? Я получаю ту же проблему, при которой svn не игнорирует файл
bpn
Спасибо @Brainware! Наконец-то это сработало благодаря вашему предложению. Я думаю, что закрытие Xcode заранее очень важно.
Джей Верслуис
52
В случае, если игнорируемый файл продолжал отображаться в списке без отслеживания, вы можете использовать его git clean -f -d
для очистки.
Github теперь предоставляет вам файл .gitignore по умолчанию, который включает этот файл среди других, но вам все равно придется пройти через ваши шаги. раздражает
cspam
3
Спасибо мужчинам, git clean -f -d только что удалили. xcodeproj и другие файлы из моего проекта ...
Джереми Луизетти
1
Настоятельно рекомендуется использовать флаг --dry-run перед запуском git clean, т. git clean -f -d --dry-run
Е.
Что делает git clean -f -d?
Алленлинли
Не используйте, git clean -f -dесли у вас есть незафиксированные изменения файлов! Я использовал его, и он удалил мои недавно созданные файлы с уже созданным содержимым! :) Так что сначала
сделай
44
Все ответы отличные, но вот тот, который будет удален для каждого пользователя, если вы работаете на разных Mac (дома и в офисе)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
Если бы друг показал мне этот удивительный сайт https://www.gitignore.io/ . Введите IDE по вашему выбору или другие параметры, и он автоматически создаст gitignoreфайл, состоящий из полезных игнорирований, одним из которых является xcuserstate. Вы можете просмотреть gitignoreфайл перед загрузкой.
Очень полезно, потому что в противном случае инструменты имеют тенденцию «зависать» при попытке показать различия в тех огромных файлах, которые не должны были проверяться в первую очередь ...
Вот что вы можете сделать (вкратце), чтобы избавиться от самых больших вещей:
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
В случае, если игнорируемый файл продолжал отображаться в списке без отслеживания, вы можете использовать его
git clean -f -d
для очистки.1.
2.
3. ВНИМАНИЕ, сначала попробуйте
git clean -f -d --dry-run
, иначе вы можете потерять незафиксированные изменения.Затем:
git clean -f -d
источник
git clean -f -d --dry-run
git clean -f -d
?git clean -f -d
если у вас есть незафиксированные изменения файлов! Я использовал его, и он удалил мои недавно созданные файлы с уже созданным содержимым! :) Так что сначалаВсе ответы отличные, но вот тот, который будет удален для каждого пользователя, если вы работаете на разных Mac (дома и в офисе)
источник
Если бы друг показал мне этот удивительный сайт https://www.gitignore.io/ . Введите IDE по вашему выбору или другие параметры, и он автоматически создаст
gitignore
файл, состоящий из полезных игнорирований, одним из которых являетсяxcuserstate
. Вы можете просмотретьgitignore
файл перед загрузкой.источник
Если файл продолжает обнаруживаться даже после выполнения всего упомянутого здесь, удостоверьтесь, что этот флажок в настройках XCode не отмечен:
источник
Просто "git clean -f -d" работал на меня!
источник
Вот несколько демонстраций и кратких сокращений, если вы используете GitHub, основные идеи те же.
1. Откройте терминал, как это
2. Вставьте приведенную ниже команду в терминал, затем введите пробел, а затем вставьте путь к файлу .xcuserstate просто так
git rm --cached
3. Убедитесь, что у вас есть правильный git ignore, а затем передайте код :)
источник
Вот очень хорошее объяснение того, как рекурсивно удалить эти файлы из вашей истории git: http://help.github.com/remove-sensitive-data/
Очень полезно, потому что в противном случае инструменты имеют тенденцию «зависать» при попытке показать различия в тех огромных файлах, которые не должны были проверяться в первую очередь ...
Вот что вы можете сделать (вкратце), чтобы избавиться от самых больших вещей:
Работал очень хорошо для меня :)
источник
У меня ничего не получалось, но это
добавьте эту строку в ваш gitignore
источник
Это работает для меня
Откройте папку, которая содержит файл проекта
project.xcworkspace
из терминала.Напишите эту команду:
git rm --cached *xcuserstate
Это удалит файл.
источник
Для xcode 8.3.3 я только что проверил, попробовал приведенный выше код и заметил, что теперь в этом случае мы должны изменить команды, чтобы это
сначала вы можете создать файл .gitignore с помощью
после этого вы можете удалить весь файл userInterface с помощью этой команды, и с помощью этой команды он будет уважать ваш файл .gitignore.
источник
Я думаю, что было бы лучше написать так.
git rm --cache * / /UserInterfaceState.xcuserstate**
источник