949 votes

Git d'ignorer des fichiers pour des projets Xcode

Quels fichiers dois-je inclure dans .gitignore lors de l'utilisation de Git en conjonction avec Xcode?

725voto

Adam Points 17726

Mods: Merci de ne pas approuver les modifications à la présente réponse. Jusqu'à présent, chaque édition a été INCORRECT et provoque la PERTE de DONNÉES. Merci de laisser cette réponse tout seul!


Si vous souhaitez modifier cette réponse ... ne le fais pas. Lire le tout premier il y a un moyen facile pour vous de faire votre propre de la fourche, et si cela ne suffit pas de le commenter.


J'étais auparavant à l'aide de haut-voté réponse, mais il faut un peu de nettoyage, donc, ici, il est re-fait pour Xcode 4, avec quelques améliorations.

J'ai recherché tous les fichiers dans cette liste, mais plusieurs d'entre eux n'existent pas dans Apple officiel de xcode docs, donc j'ai dû aller sur Apple listes de diffusion.

Apple continue d'ajouter des sans-papiers, fichiers, potentiellement corrompre nos projets en direct. Ce à mon humble avis est inacceptable, et j'ai commencé la journalisation des bugs contre elle chaque fois qu'ils le font. Je sais qu'ils ne se soucient pas, mais peut-être que ça va la honte l'un d'eux dans le traitement des développeurs de manière plus équitable.


Si vous avez besoin de personnaliser, voici un résumé vous pouvez fourche: 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.1
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 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

#
# profile - REMOVED temporarily (on double-checking, this seems incorrect; 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
#
#
# OPTION 1: ---------------------------------
#     throw away ALL personal settings (including custom schemes!
#     - unless they are "shared")
#
# 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
#     /xcsshareddata/
#       /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

####
# Xcode 5 - VCS file
# The data in this file not represent state of your project.
# If you'll leave this file in git - you will have merge conflicts during 
# pull your cahnges to other's repo
#
*.xccheckout

####
# UNKNOWN: recommended by others, but I can't discover what these files are
#
# ...none. Everything is now explained.

276voto

Hagelin Points 6754

Basé sur ce guide pour Mercurial ma .gitignore comprend:

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3

J'ai également choisi d'inclure:

*.mode1v3
*.mode2v3

qui, selon Apple cette liste de diffusion de poste, sont "spécifiques de l'utilisateur, les paramètres de projet".

Et pour Xcode 4:

xcuserdata

71voto

Abizern Points 52378

Quant à la "construction" du répertoire de l'exclusion -

Si vous placez vos fichiers dans un autre répertoire de votre source, comme je le fais, vous n'avez pas le dossier dans l'arborescence de s'inquiéter.

Cela rend aussi la vie plus simple pour le partage de votre code, la prévention de ballonnement sauvegardes, et même lorsque vous avez des dépendances à d'autres projets Xcode (alors que nécessitent les versions à être dans le même répertoire que l'autre)

Vous pouvez récupérer une copie à jour de l'Github gist https://gist.github.com/708713

Mon actuel .gitignore fichier est

# 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

59voto

Vladimir Mitrovic Points 1167

Pour Xcode 4 j'ai aussi ajouter:

YourProjectName.xcodeproj/xcuserdata/*
YourProjectName.xcodeproj/project.xcworkspace/xcuserdata/*

24voto

program247365 Points 1203

J'ai inclus ces suggestions dans un Résumé que j'ai créé sur Github: http://gist.github.com/137348

Hésitez pas à fourche et à la faire mieux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X