Eu estava usando a resposta mais votada anteriormente, mas ela precisa de um pouco de limpeza, então aqui é refeito para o Xcode 4, com algumas melhorias.
Eu pesquisei todos os arquivos desta lista, mas vários deles não existem na documentação oficial do Xcode da Apple, então tive que entrar nas listas de discussão da Apple.
A Apple continua adicionando arquivos não documentados, potencialmente corrompendo nossos projetos ao vivo. Este IMHO é inaceitável, e agora comecei a registrar bugs contra ele cada vez que o fazem. Eu sei que eles não se importam, mas talvez isso envergonhe um deles em tratar os desenvolvedores de maneira mais justa.
########################## .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#
Você não deve ignorar *.lockou Podfile.lock(não importa a redundância). Você quer exatamente as mesmas versões instaladas em todos os espaços de trabalho, não deseja a "versão mais recente".
Tvon 17/04
8
Eu removi a parte do Podfile. Eu não adicionei isso originalmente, o SO diz que alguém adicionou e eu copiei / colei descuidadamente na essência. Peço desculpas por toda e qualquer confusão e mal-entendido. Eu realmente não gosto da maneira StackOverflow permite que qualquer pessoa editar suas respostas :(.
Adam
5
Agora existe uma linha de explicação para TUDO, linha por linha. Isso deve tornar muito mais claro e facilitar a personalização para seus próprios projetos.
19413 Adam
3
@ Adam Como posso ver, esse arquivo contém metadados VCS e, portanto, não deve ser verificado no VCS. Não, não há menções developer.apple.comsobre xccheckout. Mas na página oficial do github, esse arquivo já está incluído no arquivo gitignore. https://github.com/github/gitignore/blob/master/Objective-C.gitignore
skywinder
3
Sem descrição oficial, não vamos ignorar nada. Quase toda vez que as pessoas fazem isso, ele corrompe o projeto de alguém, mais cedo ou mais tarde. Muito perigoso - não vá lá. Por isso, recuso-me a adicionar qualquer coisa a esse arquivo, a menos que eu tenha uma fonte verificável confirmando que é seguro ignorar!
Não gosto particularmente dos padrões .pbxuser / .perspective / *. Perspectivev3. Eu prefiro o seguinte .xcodeproj / ! *. Xcodeproj / project.pbxproj Isso ignora tudo dentro de um * .xcodeproj, exceto o project.pbxproj.
23410 Lily Ballard
5
Não ignoro * .pbxuser, * .perspective e * .perspectivev3 porque gosto de manter essas configurações de volta ao clonar meu repositório.
Lajos 27/05
7
Além disso, você pode querer adicionar que você pode fazer um arquivo gitignore "global" como este: git configuração --global core.excludesfile ~ / .gitignore
Jess Bowers
63
Gostaria de alertar todos os que adicionaram o arquivo .gitignore após confirmar o projeto: os arquivos que você ignora ainda estão sendo rastreados. Você vai ter que removê-los do git manualmente usandogit rm --cached <files>
pixelfreak
21
@ SpacyRicochet: A formatação dos comentários aparentemente mudou desde que escrevi o comentário. Daí o itálico. Meu padrão deve se parecer com * .xcodeproj / *! *. Xcodeproj / project.pbxproj. É claro que hoje em dia você precisa ajustá-lo para os espaços de trabalho.
Lily Ballard
64
Em relação à exclusão do diretório 'build' -
Se você colocar seus arquivos de compilação em um diretório diferente da sua fonte, como eu, não precisará se preocupar com a pasta na árvore.
Isso também simplifica a vida do compartilhamento de seu código, impedindo backups inchados e até mesmo quando você tem dependências de outros projetos do Xcode (embora exija que as compilações estejam no mesmo diretório entre si)
Eu tenho a pasta de construção fora da pasta do projeto, mas quando outros usuários criam o projeto, por padrão, ele é recriado no projeto. Por isso, descobri que adicioná-lo ao arquivo ignorar é uma solução melhor; caso contrário, ele será lido nos confirma.
Isso já foi postado em uma das respostas acima. Achei que era: incorreto, com suporte questionável (mais de 100 solicitações de recebimento pendentes!) E não documentado. O fato de estar "incorreto" é o pior de todos; eles fizeram um ignorar que só funciona para um conjunto restrito de usos e não explicou o que ou por que! Portanto: minha resposta acima, que corrige seus erros E explica o que está sendo feito e por quê, para que você possa tomar decisões fundamentadas projeto por projeto (em um novo projeto, às vezes esqueço por que alguns dos itens estão lá - os comentários me ajudar a decidir :))
Adam
@ Adam: O GitHub .gitignoreagora foi atualizado para o Xcode 6.3.2 e Swift, agora está correto. Também está documentado.
Eric
Sim, mas o problema de publicar um arquivo destrutivo de dados e mantê-lo assim por meses ou anos - e aparentemente não se preocupando em testá-lo adequadamente - é que você sacrifica permanentemente toda a fé, confiança e respeito da comunidade. Muito tarde.
Adam
14
Você deve verificar gitignore.io para Objective-C e Swift.
sempre use seu exemplo. boas configurações! Obrigado!
Nikolay Shubenkov 30/10
Eu não uso o gitignore.io há algum tempo - vale a pena conferir se você não tiver. Você pode usá-lo para criar um gitignorearquivo para qualquer IDE / idioma etc que esteja usando. Inclusive adicionará uma seção de cocoapods. Brilliant
Ashley Mills
12
Estou usando o AppCode e o XCode. assim.idea/ deve ser ignorado.
Heres um script que eu criei para criar automaticamente seus arquivos .gitignore e .gitattributes usando o Xcode ... Eu o cortei junto com algumas coisas de outras pessoas. Diverta-se!
Foi assim que adicionei um arquivo .gitignore ao meu projeto Swift:
Selecione seu projeto no Xcode e clique com o botão direito do mouse em → Novo grupo → nomeie-o como " Git "
Selecione a pasta Git e clique com o botão direito do mouse em → Adicionar novo arquivo
Na guia iOS → selecione Outro → arquivo vazio
Dê o nome do arquivo aqui " .gitignore "
Confirme o nome e o tipo do arquivo
Aqui está a estrutura de resultados:
Abra o arquivo e passe o código abaixo
# 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
Bem, graças a Adam . Sua resposta me ajudou muito, mas ainda assim tive que adicionar mais algumas entradas, pois queria um arquivo .gitignore para:
O tm_build_errors é para quando eu uso o TextMate para construir meu projeto. Não é tão abrangente quanto o Hagelin, mas achei que valia a pena postar para a linha tm_build_errors.
Você adicionou também? Ou isso é tudo o que você faz?
hakre
1
Sim, adicionei ambos, mas o xcusersate foi o principal arquivo ofensivo. Acrescentar que era a única maneira de enviar meu código remotamente. Caso contrário, eu estava preso em um loop de feedback que exigia confirmação antes do envio. Então você confirma, o Xcode 4.5 solicita que você confirme novamente e você nunca poderá pressionar porque o pré-requisito está sendo confirmado.
user1524957
4
Eu uso o seguinte arquivo .gitignore gerado no 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/
O arquivo .gitignore do github é uma coleção de todos os arquivos com os quais tivemos problemas no passado. No momento, se você iniciar um projeto do Xcode do zero e permitir que o Xcode pré-configure o repositório git, não resta muito o que ignorar no .gitignore: A única coisa que prefiro ignorar é o xcuserdata / ... .
crosscode
GitHub é o primeiro lugar que eu sempre olhar para gitignores :)
Ben leggiero
1
A maioria das respostas é da era do Xcode 4-5. Eu recomendo um arquivo ignorar em um estilo moderno.
Descobrimos que, mesmo se você adicionar o .gitignore e o .gitattribte, o arquivo * .pbxproj pode ser corrompido. Portanto, temos um plano simples.
Toda pessoa que codifica no escritório simplesmente descarta as alterações feitas nesse arquivo. No commit, mencionamos simplesmente os arquivos que são adicionados à fonte. E, em seguida, pressione o servidor. Nosso gerente de integração puxa e vê os detalhes da confirmação e adiciona os arquivos aos recursos.
Uma vez que ele atualize o controle remoto, todos terão sempre uma cópia de trabalho. Caso algo esteja faltando, informamos a ele para adicioná-lo e puxá-lo novamente.
Como isso é diferente de qualquer uma das respostas anteriores? Não basta colar seu gitignorearquivo aqui, isso não adiciona nada a este assunto.
Ashley Mills
@AshleyMills Por favor, leia o answar primeiro e depois adicionar um comentário .... O answar é para uma estrutura invulgar / queridos necessário .... que são essenciais para ter ...
https://www.gitignore.io/api/swift,xcode,Cobjective-c,osx
Respostas:
Eu estava usando a resposta mais votada anteriormente, mas ela precisa de um pouco de limpeza, então aqui é refeito para o Xcode 4, com algumas melhorias.
Eu pesquisei todos os arquivos desta lista, mas vários deles não existem na documentação oficial do Xcode da Apple, então tive que entrar nas listas de discussão da Apple.
A Apple continua adicionando arquivos não documentados, potencialmente corrompendo nossos projetos ao vivo. Este IMHO é inaceitável, e agora comecei a registrar bugs contra ele cada vez que o fazem. Eu sei que eles não se importam, mas talvez isso envergonhe um deles em tratar os desenvolvedores de maneira mais justa.
Se você precisar personalizar, aqui está uma essência que você pode bifurcar: https://gist.github.com/3786883
fonte
*.lock
ouPodfile.lock
(não importa a redundância). Você quer exatamente as mesmas versões instaladas em todos os espaços de trabalho, não deseja a "versão mais recente".developer.apple.com
sobrexccheckout
. Mas na página oficial do github, esse arquivo já está incluído no arquivo gitignore.https://github.com/github/gitignore/blob/master/Objective-C.gitignore
Com base neste guia do Mercurial, meu .gitignore inclui:
Também escolhi incluir:
que, de acordo com esta publicação na lista de discussão da Apple , são "configurações de projeto específicas do usuário".
E para o Xcode 4:
fonte
git rm --cached <files>
Em relação à exclusão do diretório 'build' -
Se você colocar seus arquivos de compilação em um diretório diferente da sua fonte, como eu, não precisará se preocupar com a pasta na árvore.
Isso também simplifica a vida do compartilhamento de seu código, impedindo backups inchados e até mesmo quando você tem dependências de outros projetos do Xcode (embora exija que as compilações estejam no mesmo diretório entre si)
Você pode obter uma cópia atualizada da lista principal do Github https://gist.github.com/708713
Meu arquivo .gitignore atual é
fonte
Para o Xcode 4, também adiciono:
fonte
xcuserdata
, isso cuida de ambos.Incluí essas sugestões em um Gist que criei no Github: http://gist.github.com/137348
Sinta-se livre para bifurcá-lo e torná-lo melhor.
fonte
O pessoal do GitHub possui arquivos .gitignore exaustivos e documentados para projetos do Xcode:
Swift: https://github.com/github/gitignore/blob/master/Swift.gitignore
Objective-C: https://github.com/github/gitignore/blob/master/Objective-C.gitignore
fonte
.gitignore
agora foi atualizado para o Xcode 6.3.2 e Swift, agora está correto. Também está documentado.Você deve verificar gitignore.io para Objective-C e Swift.
Aqui está o
.gitignore
arquivo que estou usando:fonte
gitignore
arquivo para qualquer IDE / idioma etc que esteja usando. Inclusive adicionará uma seção de cocoapods. BrilliantEstou usando o AppCode e o XCode. assim
.idea/
deve ser ignorado.anexar isso ao de Adam
.gitignore
fonte
Heres um script que eu criei para criar automaticamente seus arquivos .gitignore e .gitattributes usando o Xcode ... Eu o cortei junto com algumas coisas de outras pessoas. Diverta-se!
Xcode-Git-User-Script
Sem garantias ... Eu sou péssima em tudo isso - então use por sua conta e risco
fonte
Adicionando um arquivo .gitignore para
Foi assim que adicionei um arquivo .gitignore ao meu projeto Swift:
Aqui está a estrutura de resultados:
Bem, graças a Adam . Sua resposta me ajudou muito, mas ainda assim tive que adicionar mais algumas entradas, pois queria um arquivo .gitignore para:
Mac OS X + Xcode + Swift
Referências: isto e isto
fonte
O meu é um .bzrignore, mas é a mesma ideia :)
O tm_build_errors é para quando eu uso o TextMate para construir meu projeto. Não é tão abrangente quanto o Hagelin, mas achei que valia a pena postar para a linha tm_build_errors.
fonte
Para o Xcode 5, adiciono:
Da resposta de Berik
fonte
Eu já adicionei:
e coloquei meu arquivo .gitignore na raiz do meu projeto.
Depois de cometer e empurrar. Eu então corri:
enterrado com a pasta abaixo:
Então executei git commit e empurre novamente
fonte
Eu uso o seguinte arquivo .gitignore gerado no gitignore.io:
fonte
Melhor de todos,
Vá e escolha seu idioma e, em seguida, ele fornecerá o arquivo.
fonte
Aqui está o
.gitignore
que o GitHub usa por padrão para novos repositórios do Xcode:https://github.com/github/gitignore/blob/master/Objective-C.gitignore
É provável que esteja razoavelmente correto a qualquer momento.
fonte
A maioria das respostas é da era do Xcode 4-5. Eu recomendo um arquivo ignorar em um estilo moderno.
Mantenha-o atualizado em: https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore
fonte
Descobrimos que, mesmo se você adicionar o .gitignore e o .gitattribte, o arquivo * .pbxproj pode ser corrompido. Portanto, temos um plano simples.
Toda pessoa que codifica no escritório simplesmente descarta as alterações feitas nesse arquivo. No commit, mencionamos simplesmente os arquivos que são adicionados à fonte. E, em seguida, pressione o servidor. Nosso gerente de integração puxa e vê os detalhes da confirmação e adiciona os arquivos aos recursos.
Uma vez que ele atualize o controle remoto, todos terão sempre uma cópia de trabalho. Caso algo esteja faltando, informamos a ele para adicioná-lo e puxá-lo novamente.
Isso funcionou para nós sem problemas.
fonte
Eu recomendo usar joe para gerar um
.gitignore
arquivo.Para um projeto iOS, execute o seguinte comando:
$ joe g osx,xcode > .gitignore
Isso irá gerar
.gitignore
:fonte
fonte
gitignore
arquivo aqui, isso não adiciona nada a este assunto.