Pergunta

Quais arquivos devo incluir no .gitignore quando utilizar Git em conjunto com Xcode?

Foi útil?

Solução

Mods:Por favor, não aprovar as edições para esta resposta.Até agora, cada edição tem sido INCORRETO e provoca a PERDA de DADOS.Por favor, deixe esta resposta só!


Se você deseja editar esta resposta ...não.Ler a coisa toda de primeira há uma maneira fácil para você fazer o seu próprio garfo, e se isso não for suficiente, em seguida, comentar sobre ele.


Eu estava usando o superior votado resposta, mas precisa de um pouco de limpeza, isso aqui é re-feito para o Xcode 4, com algumas melhorias.

Eu tenho pesquisado todos arquivo na lista, mas vários deles não existem oficial da Apple xcode docs, então eu tinha que ir na Apple listas de discussão.

A Apple continua a adicionar indocumentados arquivos, possivelmente danificar nossos projetos ao vivo.Este IMHO, é inaceitável, e eu já comecei o log de erros contra ele a cada vez que eles fazem isso.Eu sei que eles não se importam, mas talvez ele vai vergonha de tratar os desenvolvedores de forma mais justa.


Se você precisar personalizar, aqui está uma essência pode garfo: 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
#

Outras dicas

Com base no este guia para Mercurial o meu .gitignore inclui:

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3

Eu também escolhi incluem:

*.mode1v3
*.mode2v3

que, de acordo com esta Maçã lista de discussão do post, são "específicas do utilizador as configurações de projeto".

E para Xcode 4:

xcuserdata

Em relação a "construir" de exclusão do diretório -

Se você colocar sua compilação de arquivos em um diretório diferente do seu de origem, assim como eu, você não tiver a pasta na árvore para se preocupar.

Isso também torna a vida mais simples para compartilhar seu código, evitando-se inchado, cópias de segurança, e mesmo quando você tem dependências com outros projectos de Xcode (enquanto exigir a cria para estar no mesmo diretório como o outro)

Você pode pegar um up-to-date cópia do gist do Github https://gist.github.com/708713

O meu atual .gitignore arquivo é

# 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

Para Xcode 4 eu também adicionar:

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

Eu incluído essas sugestões em uma Essência que eu criei no Github: http://gist.github.com/137348

Sinta-se livre para garfo-lo, e torná-lo melhor.

O povo do GitHub tem exaustiva e documentado .gitignore arquivos para o Xcode projetos:

Swift: https://github.com/github/gitignore/blob/master/Swift.gitignore

Objective-C: https://github.com/github/gitignore/blob/master/Objective-C.gitignore

Você deve checkout gitignore.io para objective-C e Swift

Aqui é o .gitignore arquivo que eu estou usando

# 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

Eu estou usando tanto AppCode e o XCode.Então, .idea/ deve ser ignorada.

acrescentar este Adão .gitignore

####
# AppCode
.idea/

Aqui está um script que eu fiz para criar automaticamente seu .gitignore e .gitattributes arquivos usando o Xcode...Eu hackeado juntamente com algumas outras pessoas coisas.Divirta-se!

Xcode-Git-Usuário-Script

Não há garantias...Eu chupar a maioria dos esta - por isso use por sua conta e risco

O meu é um .bzrignore, mas a mesma ideia :)

.DS_Store
*.mode1v3
*.pbxuser
*.perspectivev3
*.tm_build_errors

o tm_build_errors é para quando eu uso o TextMate para construir o meu projeto.Não tão abrangente como Hagelin, mas eu pensei que valia a pena postar para o tm_build_errors linha.

adicionar .gitignore arquivo para

MAC OS X + XCode + Swift

Isto é como, eu adicionei .gitignore arquivo em meu Swift projeto

  1. Selecione o projeto no XCode o Clique do botão Direito --> Novo Grupo --> O nome "Git"
  2. Selecione o Git pasta clique do botão Direito --> Adicionar um novo ficheiro
  3. Dentro iOS guia -->selecionar Outros --> arquivo vazio

enter image description here

  1. dar o nome do arquivo aqui ".gitignore"

enter image description here

  1. Confirme o nome do arquivo e o tipo de

enter image description here

Aqui está o resultado da estrutura

enter image description here

  1. abra o arquivo e passado código abaixo

# file

#########################################################################
#                                                                       #
#       Title         - .gitignore file                                 #
#       For           - MAC OSX , Xcode7 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

########### OSX ###########
# 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

########## Obj-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 repo. Instead, use fastlane to re-generate the

fastlane/report.xml
fastlane/screenshots

Bem graças a Adam, sua resposta me ajudou muito, mas ainda tive que adicionar mais alguns de entrada como eu queria .gitignore para

MAC OS X + XCode + Swift

Referências : este e este

Para XCode 5 eu me adicionar:

####
# Xcode 5 - VCS metadata
#
*.xccheckout

A partir de Berik Resposta

Eu adicionei:

xcuserstate
xcsettings

e coloquei o meu .gitignore arquivo na raiz do meu projeto.

Após cometer e empurrando.Eu, em seguida, correu:

git rm --cached UserInterfaceState.xcuserstate WorkspaceSettings.xcsettings

enterrado com a pasta abaixo:

<my_project_name>/<my_project_name>.xcodeproj/project.xcworkspace/xcuserdata/<my_user_name>.xcuserdatad/

Eu, em seguida, correu git commit e push novamente

Eu uso o seguinte .gitignore arquivo gerado em gitignore.e / s:

### 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/

o melhor de tudo,

gitignore.io

Acesse e escolha o seu idioma e, em seguida, ele vai dar a você o arquivo.

Aqui está o .gitignore que GitHub usa por padrão para o novo Xcode repositórios:

https://github.com/github/gitignore/blob/master/Objective-C.gitignore

É provável que seja razoavelmente correta, a qualquer momento.

Descobrimos que, mesmo se você adicionar o .gitignore e o .gitattribte o *.pbxproj arquivo pode ficar corrompido.Assim, temos um plano simples.

Cada pessoa que códigos no office simplesmente descarta as alterações feitas neste arquivo.No commit que simples mencionar os arquivos que são adicionados para a fonte.E de seguida, enviar para o servidor.A nossa integração com o gerenciador do que puxa e vê a cometer detalhes e adiciona os arquivos na pasta recursos.

Uma vez que ele atualiza o remoto todo mundo vai sempre ter uma cópia de trabalho.Em caso de que algo está faltando, então, podemos informar-lhe para adicionar e, em seguida, puxe novamente.

Isso tem funcionado para nós, sem quaisquer problemas.

Eu recomendo o uso de joe para gerar um .gitignore arquivo.

Para um iOS projeto execute o seguinte comando:

$ joe g osx,xcode > .gitignore

Ela irá gerar este .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

A maioria das respostas são do Xcode 4-5 era.Eu recomendo uma ignorar arquivo em estilo moderno.

# 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

Manter atualização: https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore

Uma Estrutura de standerd .gitignore arquivo para o projeto 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/
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top