Независимо от того, что я вставил .gitignore, я не могу не заставить git игнорировать файл UserInterfaceState.xcuserstate ниже:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   .gitignore
    modified:  CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate

Я использую / редактирую файл .gitignore, указанный в этом сообщении . Я пробовал все, чтобы соответствовать шаблону, включая точное имя пути: CalFoo.xcodeproj/project.xcworkspace/xcuserdata/wcochran.xcuserdatad/UserInterfaceState.xcuserstate, но безрезультатно.

Эта конкретная проблема возникает из-за рабочего процесса, в котором Xcode используется для создания исходного репозитория git и файла .gitignore из здесь. Более общий ответ на игнорирование ранее отслеживаемых файлов в git можно найти в этот вопрос (думаю, я никогда не нашел это сообщение в своем поиске, так как в его заголовке не было" gitignore ").

39
wcochran 18 Май 2014 в 02:09

4 ответа

Лучший ответ

Вы можете игнорировать только неверсированные файлы, но этот файл уже известен git.

Если вы хотите, чтобы git отслеживал этот файл, нет необходимости указывать git игнорировать его.

Если вы не хотите, чтобы git отслеживал использование этого файла, git rm, ваше правило игнорирования начнет работать.

Внимание: git rm удалит файл. Используйте git rm --cached для удаления из репо, но не с диска.

68
John Weisz 17 Апр 2017 в 17:55

У меня была такая же проблема.

Сначала зафиксируйте все незавершенные изменения кода, а затем запустите эту команду:

git rm -r --cached .

Это удалит все измененные файлы из индекса (промежуточной области), а затем просто запустите:

git add .

Зафиксируйте это:

git commit -m ".gitignore working now"

Чтобы отменить git rm --cached filename, используйте git add filename.

24
Gaurav Sharma 18 Май 2016 в 08:41

Здесь прекрасно объясняется один из простых способов игнорировать файлы на GitHub. https://help.github.com/en/articles/ignoring-files

Прежде чем отправлять сообщения на GitHub, папка вашего проекта должна быть пустой.

1) откройте терминал и напишите cd

И перетащите папку проекта через терминал. После этого это будет выглядеть так:

docmacbook$ cd /Users/docmacbook/Downloads/MyProjectFolder

2) Откройте файл .gitignore и добавьте файлы, которые вы хотите игнорировать. Например, мой файл .gitignore выглядит так:

MyAppName.xcodeproj/xcuserdata
MyAppName.xcworkspace/xcuserdata
Pods
report.xml

3) Зафиксировать и Отправить на GitHub.

После этого переместите свой проект или создайте новый в папке, где находится файл .gitignore, и теперь файлы, которые вы хотите игнорировать, не будут отправляться на ваш GitHub.

Примечание: эти шаги будут работать и для существующего проекта, я думаю, не тестировался.

0
Egzon P. 6 Сен 2019 в 21:58

Для меня мне пришлось добавить свой список в исходный элемент управления xcode Ignored Files. настройка -> управление версиями -> git -> + в игнорируемых файлах

xcode git ignore На всякий случай обязательно сбросьте настройки, чтобы новые правила git работали.

git rm -r --cached .
git add .
0
jameseronious 22 Май 2020 в 17:38