Ранее я использовал ответ с наибольшим количеством голосов, но он требует некоторой очистки, поэтому здесь он переделан для Xcode 4 с некоторыми улучшениями.
Я исследовал каждый файл в этом списке, но некоторые из них не существуют в официальной документации Apple Xcode, поэтому мне пришлось пойти в списки рассылки Apple.
Apple продолжает добавлять недокументированные файлы, потенциально повреждая наши живые проекты. Это ИМХО неприемлемо, и теперь я начинаю регистрировать баги против него каждый раз, когда они делают это. Я знаю, что им все равно, но, возможно, одному из них будет стыдно относиться к разработчикам более справедливо.
########################## .gitignore file for Xcode4 and Xcode5 Source projects## Apple bugs, waiting for Apple to fix/respond:## 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?## Version 2.6# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects## 2015 updates:# - Fixed typo in "xccheckout" line - thanks to @lyck for pointing it out!# - Fixed the .idea optional ignore. Thanks to @hashier for pointing this out# - Finally added "xccheckout" to the ignore. Apple still refuses to answer support requests about this, but in practice it seems you should ignore it.# - minor tweaks from Jona and Coeur (slightly more precise xc* filtering/names)# 2014 updates:# - appended non-standard items DISABLED by default (uncomment if you use those tools)# - removed the edit that an SO.com moderator made without bothering to ask me# - researched CocoaPods .lock more carefully, thanks to Gokhan Celiker# 2013 updates:# - fixed the broken "save personal Schemes"# - added line-by-line explanations for EVERYTHING (some were missing)## NB: if you are storing "built" products, this WILL NOT WORK,# and you should use a different .gitignore (or none at all)# This file is for SOURCE projects, where there are many extra# files that we want to exclude################################ OS X temporary files that should never be committed## c.f. http://www.westwind.com/reference/os-x/invisibles.html.DS_Store
# c.f. http://www.westwind.com/reference/os-x/invisibles.html.Trashes# c.f. http://www.westwind.com/reference/os-x/invisibles.html*.swp
## *.lock - this is used and abused by many editors for many different things.# For the main ones I use (e.g. Eclipse), it should be excluded# from source-control, but YMMV.# (lock files are usually local-only file-synchronization on the local FS that should NOT go in git)# c.f. the "OPTIONAL" section at bottom though, for tool-specific variations!## In particular, if you're using CocoaPods, you'll want to comment-out this line:*.lock## profile - REMOVED temporarily (on double-checking, I can't find it in OS X docs?)#profile##### Xcode temporary files that should never be committed# # NB: NIB/XIB files still exist even on Storyboard projects, so we want this...*~.nib
##### Xcode build files -## NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"DerivedData/# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
build/###### Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)## This is complicated:## SOMETIMES you need to put this file in version control.# Apple designed it poorly - if you use "custom executables", they are# saved in this file.# 99% of projects do NOT use those, so they do NOT want to version control this file.# ..but if you're in the 1%, comment out the line "*.pbxuser"# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html*.pbxuser
# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html*.mode1v3
# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html*.mode2v3
# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file*.perspectivev3
# NB: also, whitelist the default ones, some projects need to use these!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
##### Xcode 4 - semi-personal settings## Apple Shared data that Apple put in the wrong folder# c.f. http://stackoverflow.com/a/19260712/153422# FROM ANSWER: Apple says "don't ignore it"# FROM COMMENTS: Apple is wrong; Apple code is too buggy to trust; there are no known negative side-effects to ignoring Apple's unofficial advice and instead doing the thing that actively fixes bugs in Xcode# Up to you, but ... current advice: ignore it.*.xccheckout
### OPTION 1: ---------------------------------# throw away ALL personal settings (including custom schemes!# - unless they are "shared")# As per build/ and DerivedData/, this ought to have a trailing slash## NB: this is exclusive with OPTION 2 below
xcuserdata/# OPTION 2: ---------------------------------# get rid of ALL personal settings, but KEEP SOME OF THEM# - NB: you must manually uncomment the bits you want to keep## NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,# or manually install git over the top of the OS X version# NB: this is exclusive with OPTION 1 above##xcuserdata/**/*# (requires option 2 above): Personal Schemes##!xcuserdata/**/xcschemes/*##### Xcode 4 workspaces - more detailed## Workspaces are important! They are a core feature of Xcode - don't exclude them :)## Workspace layout is quite spammy. For reference:## /(root)/# /(project-name).xcodeproj/# project.pbxproj# /project.xcworkspace/# contents.xcworkspacedata# /xcuserdata/# /(your name)/xcuserdatad/# UserInterfaceState.xcuserstate# /xcshareddata/# /xcschemes/# (shared scheme name).xcscheme# /xcuserdata/# /(your name)/xcuserdatad/# (private scheme).xcscheme# xcschememanagement.plist####### Xcode 4 - Deprecated classes## Allegedly, if you manually "deprecate" your classes, they get moved here.## We're using source-control, so this is a "feature" that we do not want!*.moved-aside
##### OPTIONAL: Some well-known tools that people use side-by-side with Xcode / iOS development## NB: I'd rather not include these here, but gitignore's design is weak and doesn't allow# modular gitignore: you have to put EVERYTHING in one file.## COCOAPODS:## c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock# c.f. http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control##!Podfile.lock## RUBY:## c.f. http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/##!Gemfile.lock## IDEA:## c.f. https://www.jetbrains.com/objc/help/managing-projects-under-version-control.html?search=workspace.xml# #.idea/workspace.xml## TEXTMATE:## -- UNVERIFIED: c.f. http://stackoverflow.com/a/50283/153422##tm_build_errors##### UNKNOWN: recommended by others, but I can't discover what these files are#
Вы не должны игнорировать *.lockили Podfile.lock(не говоря уже о избыточности). Вам нужны одинаковые версии, установленные во всех рабочих пространствах, вам не нужна «последняя версия».
tvon
8
Я удалил часть Podfile. Я не добавил это первоначально, ТАК говорит, что кто-то еще добавил это, и я небрежно скопировал / вставил это в суть. Приношу свои извинения за любые замешательства и недоразумения. Мне действительно не нравится, как StackOverflow позволяет любому редактировать ваши ответы :(.
Адам,
5
Теперь есть объяснение ВСЕ, строка за строкой. Это должно сделать его более понятным и облегчить настройку для ваших собственных проектов.
Адам
3
@ Adam Как я вижу, этот файл содержит метаданные VCS, и поэтому его не следует проверять в VCS. Нет, там нет упоминаний developer.apple.comо xccheckout. Но на официальной странице github этот файл уже включен в файл gitignore. https://github.com/github/gitignore/blob/master/Objective-C.gitignore
Skywinder
3
Без официального описания мы не будем ничего игнорировать. Практически каждый раз, когда люди делают это, рано или поздно это портит чей-то проект. Слишком опасно - не ходи туда. Поэтому я отказываюсь добавлять что-либо в этот файл, если у меня нет проверяемого источника, подтверждающего, что его можно игнорировать!
Мне не особенно нравятся паттерны .pbxuser / .perspective / * .pectivev3. Я очень предпочитаю следующий .xcodeproj / ! *. Xcodeproj / project.pbxproj, который игнорирует все, что есть внутри * .xcodeproj, кроме project.pbxproj.
Лили Баллард
5
Я не игнорирую * .pbxuser, * .perspective и * .perspectivev3, потому что мне нравится сохранять эти настройки обратно, когда я клонирую свой репозиторий.
Лайос
7
Также вы можете добавить, что вы можете создать «глобальный» файл gitignore, например так: git config --global core.excludesfile ~ / .gitignore
Jess Bowers,
63
Я хотел бы предостеречь всех, кто добавил файл .gitignore после того, как они зафиксировали проект: эти файлы, которые вы игнорируете, все еще отслеживаются. Вам придется удалить их из Git вручную, используяgit rm --cached <files>
pixelfreak
21
@SpacyRicochet: Форматирование комментариев, очевидно, изменилось с тех пор, как я написал комментарий. Отсюда курсив. Мой шаблон должен выглядеть как * .xcodeproj / *! *. Xcodeproj / project.pbxproj. Конечно, в наши дни вам нужно настроить его для рабочих пространств.
Лили Баллард
64
Относительно исключения каталога 'build' -
Если вы поместите ваши файлы сборки в другую директорию, отличную от вашего исходного кода, как у меня, у вас не будет папки в дереве, о которой стоит беспокоиться.
Это также упрощает совместное использование вашего кода, предотвращает раздутые резервные копии и даже когда у вас есть зависимости от других проектов Xcode (при этом требуется, чтобы сборки находились в одном каталоге друг с другом)
У меня есть папка сборки вне папки проекта, но когда другие пользователи собирают проект, он по умолчанию воссоздается в проекте, поэтому я обнаружил, что добавление его в файл игнорирования является лучшим решением, в противном случае он читается в их совершает.
Это уже было опубликовано на один из ответов выше. Я обнаружил, что это: неправильно, сомнительно поддерживается (более 100 ожидающих запросов!) И недокументировано. Факт, что это "неправильно", является худшим из всех; они сделали игнорирование, которое работает только для узкого набора применений и не объяснили что или почему! Следовательно: мой ответ выше, который исправляет их ошибки И объясняет, что делается и почему, так что вы можете принимать обоснованные решения на индивидуальной основе (в новом проекте я иногда забываю, почему некоторые элементы находятся там - комментарии помогают мне решить :))
Адам
@Adam: GitHub's .gitignoreбыл обновлен для Xcode 6.3.2 и Swift, так что теперь это правильно. Это также задокументировано.
Эрик
да, но проблема с публикацией файла, разрушающего данные, и сохранением его таким в течение нескольких месяцев или лет - и, очевидно, не беспокоясь о том, чтобы проверить его должным образом - заключается в том, что вы навсегда жертвуете всей верой, доверием, уважением со стороны сообщества. Слишком поздно.
всегда используйте свой пример. хорошие настройки! Спасибо!
Николай Шубенков
Я давно не пользовался gitignore.io - стоит проверить, если нет. Вы можете использовать его для создания gitignoreфайла для любой IDE / языка и т. Д., Который вы используете. Это даже добавит раздел cocoapods. Бриллиант
Эшли Миллс
12
Я использую и AppCode и XCode. Так что .idea/следует игнорировать.
Вот сценарий, который я сделал для автоматического создания ваших файлов .gitignore и .gitattributes с использованием Xcode ... Я взломал его вместе с несколькими другими людьми. Радоваться, веселиться!
Вот как я добавил файл .gitignore в свой проект Swift:
Выберите свой проект в Xcode и щелкните правой кнопкой мыши → Новая группа → назовите его « Git »
Выберите папку Git и щелкните правой кнопкой мыши → Добавить новый файл.
На вкладке iOS выберите « Другое» → « Пустой файл».
Дайте имя файла здесь " .gitignore "
Подтвердите имя файла и тип
Вот структура результата:
Откройте файл и пройдите приведенный ниже код
# file########################################################################## ## Title - .gitignore file ## For - Mac OS X, Xcode 7 and Swift Source projects ## Updated by - Ramdhan Choudhary ## Updated on - 13 - November - 2015 ## ##################################################################################### Xcode ############ Xcode temporary files that should never be committed## Build generated
build/DerivedData# NB: NIB/XIB files still exist even on Storyboard projects, so we want this*~.nib
*.swp
## Various settings*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
*.xcscheme
########### Mac OS X ############ Mac OS X temporary files that should never be committed.DS_Store
.AppleDouble.LSOverride# Icon must end with two \rIcon# Thumbnails._*# Files that might appear in the root of a volume.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems.Trashes.VolumeIcon.icns
# Directories potentially created on remote AFP share.AppleDB.AppleDesktopNetworkTrashFolderTemporaryItems.apdisk
########## Objective-C/Swift specific ##########*.hmap
*.ipa
# CocoaPods## We recommend against adding the Pods directory to your .gitignore. However# you should judge for yourself, the pros and cons are mentioned at:# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control## Pods/# Carthage## Add this line if you want to avoid checking in source code from Carthage dependencies.# Carthage/CheckoutsCarthage/Build# fastlane## It is recommended to not store the screenshots in the Git repository. Instead, use fastlane to re-generate the
fastlane/report.xml
fastlane/screenshots
Ну, спасибо Адаму . Его ответ мне очень помог, но все же мне пришлось добавить еще несколько записей, так как я хотел файл .gitignore для:
Tm_build_errors - это когда я использую TextMate для создания своего проекта. Он не такой исчерпывающий, как Hagelin, но я подумал, что стоит опубликовать его для строки tm_build_errors.
Вы также добавили это? Или это все, что вы делаете?
Хакре
1
Да, я добавил оба, но xcusersate был основным нарушителем. Добавление этого было единственным способом, которым я мог удаленно передавать свой код. В противном случае я застрял в петле обратной связи, которая требовала фиксации перед нажатием. Таким образом, вы фиксируете, тогда Xcode 4.5 попросит вас зафиксировать снова, и вы никогда не сможете нажать, потому что предварительное требование фиксирует.
user1524957
4
Я использую следующий файл .gitignore, созданный в gitignore.io:
### Xcode ###
build/*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData*.xcuserstate
### Objective-C #### Xcode#
build/*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData*.hmap
*.ipa
*.xcuserstate
# CocoaPods## We recommend against adding the Pods directory to your .gitignore. However# you should judge for yourself, the pros and cons are mentioned at:# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control#Pods/
Файл github .gitignore - это коллекция всех файлов, с которыми у нас были проблемы в прошлом. Прямо сейчас, если вы запустите проект Xcode с нуля, и пусть Xcode предварительно сконфигурирует репозиторий git, в .gitignore осталось не так уж много, чтобы игнорировать: единственное, что я предпочитаю игнорировать, это xcuserdata / ... это помогает не загромождать ваши коммиты ,
кросс-код
GitHub - это первое место, где я ищу gitignores :)
Бен Легжеро,
1
Большинство ответов относятся к эпохе Xcode 4-5. Я рекомендую игнорировать файл в современном стиле.
Мы обнаружили, что даже если вы добавите .gitignore и .gitattribte, файл * .pbxproj может быть поврежден. Итак, у нас есть простой план.
Каждый человек, который кодирует в офисе, просто отказывается от изменений, внесенных в этот файл. В коммите мы просто упоминаем файлы, которые добавляются в источник. А затем нажмите на сервер. Наш менеджер по интеграции затем извлекает информацию о коммите и добавляет файлы в ресурсы.
Как только он обновит пульт, у каждого всегда будет рабочая копия. В случае, если чего-то не хватает, мы сообщаем ему добавить это, а затем снова потянем.
Чем это отличается от любого из предыдущих ответов? Не просто вставьте gitignoreсюда свой файл, это ничего не добавляет к этой теме.
Эшли Миллс
@AshleyMills Пожалуйста, сначала прочитайте ответ, а затем добавьте комментарий .... Ответ предназначен для странной структуры / требуемых .... которые необходимы, чтобы иметь ...
https://www.gitignore.io/api/swift,xcode,Cobjective-c,osx
Ответы:
Ранее я использовал ответ с наибольшим количеством голосов, но он требует некоторой очистки, поэтому здесь он переделан для Xcode 4 с некоторыми улучшениями.
Я исследовал каждый файл в этом списке, но некоторые из них не существуют в официальной документации Apple Xcode, поэтому мне пришлось пойти в списки рассылки Apple.
Apple продолжает добавлять недокументированные файлы, потенциально повреждая наши живые проекты. Это ИМХО неприемлемо, и теперь я начинаю регистрировать баги против него каждый раз, когда они делают это. Я знаю, что им все равно, но, возможно, одному из них будет стыдно относиться к разработчикам более справедливо.
Если вам нужно настроить, вот суть, которую вы можете раскошелиться: https://gist.github.com/3786883
источник
*.lock
илиPodfile.lock
(не говоря уже о избыточности). Вам нужны одинаковые версии, установленные во всех рабочих пространствах, вам не нужна «последняя версия».developer.apple.com
оxccheckout
. Но на официальной странице github этот файл уже включен в файл gitignore.https://github.com/github/gitignore/blob/master/Objective-C.gitignore
На основе этого руководства для Mercurial мой .gitignore включает в себя:
Я также решил включить:
которые, согласно этому сообщению в списке рассылки Apple , являются «пользовательскими настройками проекта».
И для Xcode 4:
источник
git rm --cached <files>
Относительно исключения каталога 'build' -
Если вы поместите ваши файлы сборки в другую директорию, отличную от вашего исходного кода, как у меня, у вас не будет папки в дереве, о которой стоит беспокоиться.
Это также упрощает совместное использование вашего кода, предотвращает раздутые резервные копии и даже когда у вас есть зависимости от других проектов Xcode (при этом требуется, чтобы сборки находились в одном каталоге друг с другом)
Вы можете получить актуальную копию с Github Gist https://gist.github.com/708713
Мой текущий файл .gitignore
источник
Для Xcode 4 я также добавляю:
источник
xcuserdata
, то обо всем позаботится.Я включил эти предложения в Gist, который я создал на Github: http://gist.github.com/137348
Не стесняйтесь раскошелиться, и сделать это лучше.
источник
Люди из GitHub имеют исчерпывающие и документированные файлы .gitignore для проектов Xcode:
Свифт: https://github.com/github/gitignore/blob/master/Swift.gitignore
Цель-C: https://github.com/github/gitignore/blob/master/Objective-C.gitignore
источник
.gitignore
был обновлен для Xcode 6.3.2 и Swift, так что теперь это правильно. Это также задокументировано.Вы должны проверить gitignore.io для Objective-C и Swift.
Вот
.gitignore
файл, который я использую:источник
gitignore
файла для любой IDE / языка и т. Д., Который вы используете. Это даже добавит раздел cocoapods. БриллиантЯ использую и AppCode и XCode. Так что
.idea/
следует игнорировать.добавить это к Адаму
.gitignore
источник
Вот сценарий, который я сделал для автоматического создания ваших файлов .gitignore и .gitattributes с использованием Xcode ... Я взломал его вместе с несколькими другими людьми. Радоваться, веселиться!
Xcode-Гит-User-Script
Никаких гарантий ... Я сосу большую часть этого - так что пользуйтесь на свой страх и риск
источник
Добавление файла .gitignore для
Вот как я добавил файл .gitignore в свой проект Swift:
Вот структура результата:
Ну, спасибо Адаму . Его ответ мне очень помог, но все же мне пришлось добавить еще несколько записей, так как я хотел файл .gitignore для:
Mac OS X + Xcode + Swift
Рекомендации: это и это
источник
Мой .bzrignore, но это та же идея :)
Tm_build_errors - это когда я использую TextMate для создания своего проекта. Он не такой исчерпывающий, как Hagelin, но я подумал, что стоит опубликовать его для строки tm_build_errors.
источник
Для Xcode 5 я добавляю:
Из ответа Берика
источник
Я добавил:
и поместил мой файл .gitignore в корень моего проекта.
После совершения и толкания. Я тогда побежал:
похоронен с папкой ниже:
Затем я запустил git commit и снова нажал
источник
Я использую следующий файл .gitignore, созданный в gitignore.io:
источник
Лучше всех,
Иди и выбери свой язык, и тогда он даст тебе файл.
источник
Вот
.gitignore
что GitHub использует по умолчанию для новых репозиториев Xcode:https://github.com/github/gitignore/blob/master/Objective-C.gitignore
Скорее всего, это будет правильно в любой момент времени.
источник
Большинство ответов относятся к эпохе Xcode 4-5. Я рекомендую игнорировать файл в современном стиле.
Держите его в курсе: https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore
источник
Мы обнаружили, что даже если вы добавите .gitignore и .gitattribte, файл * .pbxproj может быть поврежден. Итак, у нас есть простой план.
Каждый человек, который кодирует в офисе, просто отказывается от изменений, внесенных в этот файл. В коммите мы просто упоминаем файлы, которые добавляются в источник. А затем нажмите на сервер. Наш менеджер по интеграции затем извлекает информацию о коммите и добавляет файлы в ресурсы.
Как только он обновит пульт, у каждого всегда будет рабочая копия. В случае, если чего-то не хватает, мы сообщаем ему добавить это, а затем снова потянем.
Это сработало для нас без каких-либо проблем.
источник
Я рекомендую использовать Джо для создания
.gitignore
файла.Для проекта iOS выполните следующую команду:
$ joe g osx,xcode > .gitignore
Это сгенерирует это
.gitignore
:источник
источник
gitignore
сюда свой файл, это ничего не добавляет к этой теме.