.gitignore
将Git与Xcode结合使用时,我应该包含哪些文件?
修改:请不要批准对此答案进行编辑.到目前为止,每个编辑都是INCORRECT并导致数据丢失.请单独留下这个答案!
如果你想编辑这个答案......不要.首先阅读整个事情 - 你有一个简单的方法来制作自己的分支,如果这还不够,那么就对它进行评论.
我以前使用的是最高投票的答案,但它需要一些清理,所以在这里重新完成Xcode 4,并做了一些改进.
我已经研究了这个列表中的每个文件,但Apple的官方xcode文档中没有一些文件存在,所以我不得不继续使用Apple邮件列表.
Apple继续添加未记录的文件,可能会破坏我们的实时项目.这个恕我直言是不可接受的,现在我每次都开始记录它的bug.我知道他们并不关心,但也许他们中的一个会更公平地对待开发者.
如果你需要自定义,这里有一个要点,你可以分叉: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 #
根据Mercurial的指南,我的.gitignore包括:
.DS_Store *.swp *~.nib build/ *.pbxuser *.perspective *.perspectivev3
我还选择包括:
*.mode1v3 *.mode2v3
根据这个Apple邮件列表帖子,这是"用户特定的项目设置".
而对于Xcode 4:
xcuserdata
关于'build'目录排除 -
如果您将构建文件放在与源不同的目录中,就像我一样,您不必担心树中的文件夹.
这也使得共享代码的生活变得更简单,防止膨胀的备份,甚至当你对其他Xcode项目有依赖性时(同时要求构建在彼此相同的目录中)
您可以从Github gist https://gist.github.com/708713获取最新的副本
我目前的.gitignore文件是
# 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
对于Xcode 4,我还添加:
YourProjectName.xcodeproj/xcuserdata/* YourProjectName.xcodeproj/project.xcworkspace/xcuserdata/*
我在Github上创建的Gist中包含了这些建议:http://gist.github.com/137348
随意分叉,并使其更好.
GitHub的人员为Xcode项目提供了详尽的文档.gitignore文件:
Swift: https ://github.com/github/gitignore/blob/master/Swift.gitignore
Objective-C: https ://github.com/github/gitignore/blob/master/Objective-C.gitignore
你应该检查gitignore.io for Objective C和Swift
这是.gitignore
我正在使用的文件
# 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
我正在使用AppCode和XCode.所以.idea/
应该被忽略.
把这个附加到亚当的 .gitignore
#### # AppCode .idea/
下面是我使用Xcode自动创建.gitignore和.gitattributes文件的脚本......我和其他一些人一起攻击它.玩得开心!
Xcode中,Git的用户脚本
没有保证......我最常吮吸这个 - 所以使用你自己的危险
我是一个.bzrignore,但同样的想法:)
.DS_Store *.mode1v3 *.pbxuser *.perspectivev3 *.tm_build_errors
tm_build_errors适用于我使用TextMate构建项目的时候.不像Hagelin那么全面,但我认为值得发布tm_build_errors行.
添加.gitignore文件以供
MAC OS X + XCode + Swift
这就是我将.gitignore文件添加到我的Swift项目中的方法
在XCode中选择项目并右键单击 - > 新组 - >将其命名为" Git "
选择Git文件夹,然后右键单击 - > 添加新文件
在iOS选项卡中 - >选择其他 - > 空文件
在这里给出文件名" .gitignore "
确认文件名和类型
这是结果结构
打开文件和过去的代码
# 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
好感谢亚当,他的回答对我帮助很大,但我仍不得不添加几个条目,我想的.gitignore为
MAC OS X + XCode + Swift
参考文献:这和这个
对于XCode 5,我添加:
#### # Xcode 5 - VCS metadata # *.xccheckout
从Berik的答案