Skip to content

Instantly share code, notes, and snippets.

@adamgit
Last active June 2, 2025 10:33

Revisions

  1. adamgit revised this gist Sep 25, 2015. 1 changed file with 4 additions and 12 deletions.
    16 changes: 4 additions & 12 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -5,10 +5,11 @@
    #
    # 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
    #
    # Version 2.5
    # 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)
    @@ -120,7 +121,7 @@ build/
    # 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
    *.xccheckout

    #
    #
    @@ -213,13 +214,4 @@ xcuserdata/

    ####
    # UNKNOWN: recommended by others, but I can't discover what these files are
    #
    # Community suggestions (unverified, no evidence available - DISABLED by default)
    #
    # 1. 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
    #
  2. adamgit revised this gist Jul 1, 2015. 1 changed file with 21 additions and 5 deletions.
    26 changes: 21 additions & 5 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -5,9 +5,13 @@
    #
    # 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
    #
    # Version 2.3
    # Version 2.5
    # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #
    # 2015 updates:
    # - 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
    @@ -44,7 +48,8 @@
    # 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


    @@ -109,14 +114,23 @@ build/

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

    # OPTION 2: ---------------------------------
    # get rid of ALL personal settings, but KEEP SOME OF THEM
    @@ -147,7 +161,7 @@ xcuserdata
    # /xcuserdata/
    # /(your name)/xcuserdatad/
    # UserInterfaceState.xcuserstate
    # /xcsshareddata/
    # /xcshareddata/
    # /xcschemes/
    # (shared scheme name).xcscheme
    # /xcuserdata/
    @@ -187,7 +201,9 @@ xcuserdata
    #
    # IDEA:
    #
    #.idea
    # c.f. https://www.jetbrains.com/objc/help/managing-projects-under-version-control.html?search=workspace.xml
    #
    #.idea/workspace.xml
    #
    # TEXTMATE:
    #
  3. adamgit revised this gist Oct 6, 2014. 1 changed file with 34 additions and 6 deletions.
    40 changes: 34 additions & 6 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -5,10 +5,11 @@
    #
    # 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
    #
    # Version 2.2
    # Version 2.3
    # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #
    # 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:
    @@ -37,20 +38,18 @@

    *.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!

    *.lock

    # CocoaPods uses .lock in an unusual/non-standard way: CocoaPods requires it be stored in git
    # c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock
    #
    !Podfile.lock

    #
    # profile - REMOVED temporarily (on double-checking, this seems incorrect; I can't find it in OS X docs?)
    # profile - REMOVED temporarily (on double-checking, I can't find it in OS X docs?)
    #profile


    @@ -167,6 +166,35 @@ xcuserdata

    *.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:
    #
    #.idea
    #
    # 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
    #
  4. adamgit revised this gist Oct 6, 2014. 1 changed file with 61 additions and 9 deletions.
    70 changes: 61 additions & 9 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -1,26 +1,57 @@
    #########################
    # .gitignore file for Xcode4 / OS X Source projects
    # .gitignore file for Xcode4 and Xcode5 Source projects
    #
    # Version 2.0
    # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    # Apple bugs, waiting for Apple to fix/respond:
    #
    # 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
    #
    # Version 2.2
    # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #
    # 2014 updates:
    # - 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"
    # - 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)
    # 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
    # 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)

    *.lock
    profile

    # CocoaPods uses .lock in an unusual/non-standard way: CocoaPods requires it be stored in git
    # c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock
    #
    !Podfile.lock

    #
    # profile - REMOVED temporarily (on double-checking, this seems incorrect; I can't find it in OS X docs?)
    #profile


    ####
    @@ -54,10 +85,22 @@ build/
    # 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
    @@ -80,6 +123,8 @@ xcuserdata
    # 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/**/*
    @@ -122,8 +167,15 @@ xcuserdata

    *.moved-aside


    ####
    # UNKNOWN: recommended by others, but I can't discover what these files are
    #
    # ...none. Everything is now explained.
    # Community suggestions (unverified, no evidence available - DISABLED by default)
    #
    # 1. 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
  5. adamgit revised this gist Apr 17, 2013. 1 changed file with 0 additions and 10 deletions.
    10 changes: 0 additions & 10 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -122,16 +122,6 @@ xcuserdata

    *.moved-aside

    ####
    # Cocoapods: cocoapods.org
    #
    # Ignoring these files means that whoever uses the code will first have to run:
    # pod install
    # in the App.xcodeproj directory.
    # This ensures the latest dependencies are used.
    Pods/
    Podfile.lock


    ####
    # UNKNOWN: recommended by others, but I can't discover what these files are
  6. adamgit revised this gist Feb 8, 2013. 1 changed file with 47 additions and 25 deletions.
    72 changes: 47 additions & 25 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,17 @@
    #########################
    # .gitignore file for Xcode4 / OS X Source projects
    #
    # Version 2.0
    # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #
    # 2013 updates:
    # - fixed the broken "save personal Schemes"
    #
    # 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
    #
    # For updates, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #########################

    #####
    @@ -61,45 +66,52 @@ build/


    ####
    # Xcode 4 - semi-personal settings, often included in workspaces
    # Xcode 4 - semi-personal settings
    #
    # You can safely ignore the xcuserdata files - but do NOT ignore the files next to them
    #

    # 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 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/
    # /(root)/
    # /(project-name).xcodeproj/
    # project.pbxproj
    # project.xcworkspace/
    # /project.xcworkspace/
    # contents.xcworkspacedata
    # xcuserdata/
    # (your name)/xcuserdatad/
    # xcuserdata/
    # (your name)/xcuserdatad/
    #
    # /xcuserdata/
    # /(your name)/xcuserdatad/
    # UserInterfaceState.xcuserstate
    # /xcsshareddata/
    # /xcschemes/
    # (shared scheme name).xcscheme
    # /xcuserdata/
    # /(your name)/xcuserdatad/
    # (private scheme).xcscheme
    # xcschememanagement.plist
    #
    #
    # Xcode 4 workspaces - SHARED
    #
    # This is UNDOCUMENTED (google: "developer.apple.com xcshareddata" - 0 results
    # But if you're going to kill personal workspaces, at least keep the shared ones...
    #
    #
    !xcshareddata

    ####
    # XCode 4 build-schemes
    #
    # PRIVATE ones are stored inside xcuserdata
    !xcschemes

    ####
    # Xcode 4 - Deprecated classes
    @@ -110,6 +122,16 @@ xcuserdata

    *.moved-aside

    ####
    # Cocoapods: cocoapods.org
    #
    # Ignoring these files means that whoever uses the code will first have to run:
    # pod install
    # in the App.xcodeproj directory.
    # This ensures the latest dependencies are used.
    Pods/
    Podfile.lock


    ####
    # UNKNOWN: recommended by others, but I can't discover what these files are
  7. adamgit revised this gist Jan 2, 2013. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -68,7 +68,6 @@ build/

    xcuserdata


    ####
    # XCode 4 workspaces - more detailed
    #
    @@ -96,6 +95,11 @@ xcuserdata
    #
    !xcshareddata

    ####
    # XCode 4 build-schemes
    #
    # PRIVATE ones are stored inside xcuserdata
    !xcschemes

    ####
    # Xcode 4 - Deprecated classes
    @@ -110,4 +114,4 @@ xcuserdata
    ####
    # UNKNOWN: recommended by others, but I can't discover what these files are
    #
    # ...none. Everything is now explained.
    # ...none. Everything is now explained.
  8. adamgit created this gist Sep 26, 2012.
    113 changes: 113 additions & 0 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,113 @@
    #########################
    # .gitignore file for Xcode4 / OS X Source projects
    #
    # 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
    #
    # For updates, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
    #########################

    #####
    # OS X temporary files that should never be committed

    .DS_Store
    *.swp
    *.lock
    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
    *.mode1v3
    *.mode2v3
    *.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, often included in workspaces
    #
    # You can safely ignore the xcuserdata files - but do NOT ignore the files next to them
    #

    xcuserdata


    ####
    # 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/
    # xcuserdata/
    # (your name)/xcuserdatad/
    #
    #
    #
    # Xcode 4 workspaces - SHARED
    #
    # This is UNDOCUMENTED (google: "developer.apple.com xcshareddata" - 0 results
    # But if you're going to kill personal workspaces, at least keep the shared ones...
    #
    #
    !xcshareddata


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


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