Odpowiedzi:
Wcześniej korzystałem z najczęściej głosowanej odpowiedzi, ale wymaga ona trochę uporządkowania, więc tutaj została ona wykonana ponownie dla Xcode 4, z pewnymi ulepszeniami.
Przeszukałem każdy plik na tej liście, ale kilka z nich nie istnieje w oficjalnej dokumentacji Apple Xcode, więc musiałem przejść na listy mailingowe Apple.
Apple nadal dodaje nieudokumentowane pliki, co może uszkodzić nasze projekty na żywo. To IMHO jest niedopuszczalne, a teraz zacząłem rejestrować błędy za każdym razem, gdy to robią. Wiem, że ich to nie obchodzi, ale może zawstydzi jednego z nich bardziej sprawiedliwym traktowaniem programistów.
Jeśli chcesz dostosować, oto treść, którą możesz rozwidlić: https://gist.github.com/3786883
#########################
# .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
ani Podfile.lock
(nie wspominając o redundancji). Chcesz dokładnie takie same wersje zainstalowane we wszystkich obszarach roboczych, nie chcesz „najnowszej wersji”.
developer.apple.com
temat xccheckout
. Ale na oficjalnej stronie github ten plik jest już zawarty w pliku gitignore. https://github.com/github/gitignore/blob/master/Objective-C.gitignore
W oparciu o ten przewodnik dla Mercurial mój .gitignore obejmuje:
.DS_Store
*.swp
*~.nib
build/
*.pbxuser
*.perspective
*.perspectivev3
Wybrałem także:
*.mode1v3
*.mode2v3
które zgodnie z tym postem na liście mailingowej Apple są „specyficznymi dla użytkownika ustawieniami projektu”.
A dla Xcode 4:
xcuserdata
git rm --cached <files>
Jeśli chodzi o wykluczenie katalogu „build” -
Jeśli umieścisz swoje pliki kompilacji w innym katalogu niż źródło, tak jak ja, nie będziesz mieć folderu w drzewie, o który mógłbyś się martwić.
Ułatwia to również udostępnianie kodu, zapobiegając rozdętym kopiom zapasowym, a nawet gdy masz zależności od innych projektów Xcode (wymagając, aby kompilacje znajdowały się w tym samym katalogu)
Możesz pobrać aktualną kopię z listy Github https://gist.github.com/708713
Mój aktualny plik .gitignore to
# Mac OS X
*.DS_Store
# Xcode
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/
# Generated files
*.o
*.pyc
#Python modules
MANIFEST
dist/
build/
# Backup files
*~.nib
Do Xcode 4 dodaję również:
YourProjectName.xcodeproj/xcuserdata/*
YourProjectName.xcodeproj/project.xcworkspace/xcuserdata/*
xcuserdata
, to zajmie się obydwoma.
Zawarłem te sugestie w Gist utworzonym na Github: http://gist.github.com/137348
Możesz go rozwidlić i ulepszyć.
Ludzie GitHub mają wyczerpujące i udokumentowane pliki .gitignore dla projektów Xcode:
Swift: https://github.com/github/gitignore/blob/master/Swift.gitignore
Cel C: https://github.com/github/gitignore/blob/master/Objective-C.gitignore
.gitignore
został zaktualizowany do Xcode 6.3.2 i Swift, więc jest teraz poprawny. Jest to również udokumentowane.
Powinieneś sprawdzić gitignore.io dla Objective-C i Swift.
Oto .gitignore
plik, którego używam:
# Xcode
.DS_Store
*/build/*
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
*.hmap
*.xccheckout
*.xcworkspace
!default.xcworkspace
#CocoaPods
Pods
gitignore
pliku dla dowolnego IDE / języka itp., Którego używasz. Doda nawet sekcję cocoapods. Genialny
Używam zarówno AppCode, jak i XCode. Więc.idea/
należy je zignorować.
dołącz to do Adama .gitignore
####
# AppCode
.idea/
Oto skrypt, który utworzyłem, aby automatycznie utworzyć pliki .gitignore i .gitattributes przy użyciu Xcode ... Zhakowałem go razem z kilkoma innymi osobami. Baw się dobrze!
Żadnych gwarancji ... Zassałem co najwyżej - wykorzystaj więc na własne ryzyko
Dodanie pliku .gitignore dla
Mac OS X + Xcode + Swift
Oto jak dodałem plik .gitignore do mojego projektu Swift:
Oto struktura wyników:
# 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 \r
Icon
# 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
.AppleDesktop
Network Trash Folder
Temporary Items
.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/Checkouts
Carthage/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
Cóż, dzięki Adamowi . Jego odpowiedź bardzo mi pomogła, ale wciąż musiałem dodać kilka kolejnych wpisów, ponieważ chciałem pliku .gitignore dla:
Mac OS X + Xcode + Swift
Mój jest .bzrignore, ale to ten sam pomysł :)
.DS_Store
*.mode1v3
*.pbxuser
*.perspectivev3
*.tm_build_errors
Tm_build_errors jest, gdy używam TextMate do budowy mojego projektu. Nie jest tak kompleksowy jak Hagelin, ale pomyślałem, że warto opublikować wpis dla linii tm_build_errors.
Dodałem:
xcuserstate
xcsettings
i umieściłem mój plik .gitignore w katalogu głównym mojego projektu.
Po popełnieniu i pchnięciu. Potem pobiegłem:
git rm --cached UserInterfaceState.xcuserstate WorkspaceSettings.xcsettings
pochowany z folderem poniżej:
<my_project_name>/<my_project_name>.xcodeproj/project.xcworkspace/xcuserdata/<my_user_name>.xcuserdatad/
Potem uruchomiłem git commit i ponownie nacisnąłem
Korzystam z następującego pliku .gitignore wygenerowanego w 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/
Oto .gitignore
domyślnie używane przez GitHub nowe repozytoria Xcode:
https://github.com/github/gitignore/blob/master/Objective-C.gitignore
Prawdopodobnie w dowolnym momencie będzie to poprawne.
Większość odpowiedzi pochodzi z ery Xcode 4-5. Polecam zignorować plik w nowoczesnym stylu.
# Xcode Project
**/*.xcodeproj/xcuserdata/
**/*.xcworkspace/xcuserdata/
**/*.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
**/*.xcworkspace/xcshareddata/*.xccheckout
**/*.xcworkspace/xcshareddata/*.xcscmblueprint
.idea/
# Xcode Injection
IOSInjectionProject/
OSXInjectionProject/
# Build
build/
DerivedData
# CocoaPods
Pods/
# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/sign&cert
# CSV
*.orig
.svn
# Other
*~
.DS_Store
*.swp
*.save
._*
*.bak
Aktualizuj go od: https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore
Odkryliśmy, że nawet jeśli dodasz .gitignore i .gitattribte, plik * .pbxproj może zostać uszkodzony. Mamy więc prosty plan.
Każda osoba, która koduje w biurze, po prostu odrzuca zmiany wprowadzone w tym pliku. W zatwierdzeniu po prostu wspominamy o plikach dodawanych do źródła. A następnie pchnij na serwer. Nasz menedżer integracji pobiera i widzi szczegóły zatwierdzenia oraz dodaje pliki do zasobów.
Po aktualizacji pilota wszyscy będą mieli kopię roboczą. Jeśli czegoś brakuje, informujemy go, aby go dodał, a następnie pociągnął jeszcze raz.
Sprawdziło się to dla nas bez żadnych problemów.
Polecam użycie Joe do wygenerowania .gitignore
pliku.
W przypadku projektu iOS uruchom następujące polecenie:
$ joe g osx,xcode > .gitignore
Wygeneruje to .gitignore
:
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
build/
DerivedData
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
*.xcuserstate
Struktura standardowego pliku .gitignore dla projektu Xcode>
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
!default.xcworkspace
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
gitignore
tutaj swojego pliku, to nic nie doda do tego tematu.
https://www.gitignore.io/api/swift,xcode,Cobjective-c,osx