.gitignore не будет игнорировать каталог
Я пытаюсь игнорировать папки xcuserdata, которые xcode 4 изменяет, и они продолжают возвращаться, несмотря на то, что они находятся в моем файле .gitignore.
Мой .gitignore файл в виде одной строки:
xcuserdata
Но как только я изменяю что-либо UI в xcode, я получаю следующее:
# modified: XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate
Я сделал...
git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate
... и попытался...
git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata
... за которым следует фиксация. Я сделал это близко к 10 раз, и он просто не исчезнет и будет проигнорирован. Он продолжает возвращаться.
Что я делаю неправильно? Ясно, что я не понимаю. Файл был добавлен в репозиторий, когда я его впервые создал, и теперь я пытаюсь избавиться от него.
Я просто хочу, чтобы этот файл полностью не отслеживался, как будто он никогда не добавлялся в репозиторий.
Ответы
Ответ 1
После выполнения
git rm -r --cached XXXXXXXX.xcodeproj/project.xcworkspace/xcuserdata
проверьте, что git status
сообщает, что файлы в этой папке были удалены. Затем после вашего фиксации убедитесь, что git говорит, что ничего не зафиксировать.
Тот факт, что вы сделали это "10 раз", и он приходит как измененный, показывает, что вы не делаете это правильно, и папка (на самом деле файлы внутри нее) все еще отслеживаются.
Кроме того, содержание .gitignore
кажется прекрасным, и я даже подтвердил на своем репо, что он работает.
Ответ 2
Если вы не можете нажать фиксацию только потому, что UserInterfaceState.xcuserstate
было изменено, здесь быстро исправить:
- Откройте Организатор, перейдите в Хранилища, скопируйте код фиксации (что-то вроде
f01a2147218d by username
)
- Откройте терминал, перейдите в папку проекта,
git reset --hard f01a2147218d
- Нажмите фиксатор!
Ответ 3
попробуйте использовать xcuserdata/в .gitignore