Git ละเว้นไฟล์สำหรับโครงการ Xcode


885

ไฟล์ที่ผมควรจะรวมถึงใน.gitignoreเมื่อใช้Gitร่วมกับXcode ?


10
ตรวจสอบhttps://www.gitignore.io/api/swift,xcode,Cobjective-c,osx
thesummersign

ลิงก์ด้านบนสร้างข้อผิดพลาด: gitignore.io/api/swift,xcode,objective-c,osx
สาธุคุณ

คำตอบ:


693

ก่อนหน้านี้ฉันเคยใช้คำตอบที่ได้รับคะแนนสูงสุด แต่ต้องมีการล้างข้อมูลเล็กน้อยดังนั้นนี่คือการทำซ้ำสำหรับ Xcode 4 พร้อมการปรับปรุงบางอย่าง

ฉันค้นคว้าทุกไฟล์ในรายการนี้ แต่หลายไฟล์ไม่มีอยู่ในเอกสาร Xcode อย่างเป็นทางการของ Apple ดังนั้นฉันต้องไปที่รายชื่อรับเมลของ Apple

Apple ยังคงเพิ่มไฟล์ที่ไม่มีเอกสารซึ่งอาจทำให้โครงการสดของเราเสียหาย IMHO นี้ไม่เป็นที่ยอมรับและตอนนี้ฉันเริ่มบันทึกข้อบกพร่องกับมันทุกครั้งที่ทำเช่นนั้น ฉันรู้ว่าพวกเขาไม่สนใจ แต่บางทีมันน่าละอายที่พวกเขาจะปฏิบัติต่อนักพัฒนาอย่างเป็นธรรมมากขึ้น


หากคุณต้องการกำหนดเองนี่คือส่วนสำคัญที่คุณสามารถแยกได้: 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
#

61
คุณไม่ควรเพิกเฉย*.lockหรือPodfile.lock( ไม่ต้องสนใจเรื่องความซ้ำซ้อน) คุณต้องการรุ่นเดียวกันที่ติดตั้งในพื้นที่ทำงานทั้งหมดคุณไม่ต้องการ "รุ่นล่าสุด"
tvon

8
ฉันได้ลบส่วน Podfile แล้ว ฉันไม่ได้เพิ่มสิ่งนั้นไว้ในตอนแรกดังนั้นจึงบอกว่ามีคนอื่นเพิ่มและฉันก็คัดลอก / วางลงในส่วนสำคัญ ฉันขอโทษสำหรับความสับสนใด ๆ / ทั้งหมดและความเข้าใจผิด ฉันไม่ชอบวิธีที่ StackOverflow อนุญาตให้ทุกคนแก้ไขคำตอบของคุณ :(
อดัม

5
ตอนนี้มีบรรทัดคำอธิบายสำหรับทุกอย่างทีละบรรทัด สิ่งนี้ควรทำให้ชัดเจนยิ่งขึ้นและทำให้ง่ายขึ้นในการปรับแต่งสำหรับโครงการของคุณเอง
อดัม

3
@ อดัมอย่างที่ฉันเห็นไฟล์นี้มีข้อมูลเมตาของ VCS และดังนั้นจึงไม่ควรตรวจสอบลงใน VCS ไม่มีมีไม่มีการกล่าวถึงในเรื่องเกี่ยวกับdeveloper.apple.com xccheckoutแต่ในหน้า GitHub อย่างเป็นทางการไฟล์นี้รวมอยู่ในไฟล์ gitignore แล้ว https://github.com/github/gitignore/blob/master/Objective-C.gitignore
skywinder

3
หากไม่มีคำอธิบายอย่างเป็นทางการเราจะไม่เพิกเฉยต่อสิ่งใด เกือบทุกครั้งที่คนทำอย่างนั้นมันเสียหายโครงการของใครบางคนไม่ช้าก็เร็ว อันตรายเกินไป - อย่าไปที่นั่น ดังนั้นฉันจึงปฏิเสธที่จะเพิ่มอะไรลงในไฟล์นี้เว้นแต่ฉันจะมีแหล่งที่สามารถตรวจสอบได้ยืนยันว่าปลอดภัยที่จะไม่สนใจ!
อดัม

276

ตามคู่มือนี้สำหรับ Mercurial my .gitignore ของฉันประกอบด้วย:

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3

ฉันก็เลือกที่จะรวมถึง:

*.mode1v3
*.mode2v3

ซึ่งตามประกาศรายการส่งจดหมายของ Apple นี้คือ "การตั้งค่าโครงการเฉพาะผู้ใช้"

และสำหรับ Xcode 4:

xcuserdata

52
ฉันไม่ชอบรูปแบบ. pbxuser / .perspective / *. perspectivev3 โดยเฉพาะ ฉันชอบ. xcodeproj / ! *. xcodeproj / project.pbxproj ต่อไปนี้มาก ซึ่งไม่สนใจทุกอย่างภายใน * .xcodeproj ยกเว้น project.pbxproj
Lily Ballard

5
ฉันไม่ละเว้น * .pbxuser, * .perspective และ * .perspectivev3 เพราะฉันต้องการให้การตั้งค่าเหล่านั้นกลับคืนมาเมื่อฉันโคลนที่เก็บของฉัน
lajos

7
นอกจากนี้คุณอาจต้องการเพิ่มว่าคุณสามารถสร้างไฟล์ gitignore "global" เช่นนี้: git config --global core.excludesfile ~ / .gitignore
Jess Bowers

63
ฉันต้องการเตือนทุกคนที่เพิ่มไฟล์. gitignore หลังจากที่พวกเขาได้ทำโปรเจ็กต์ไฟล์เหล่านั้นที่คุณเพิกเฉยยังคงถูกติดตามอยู่ คุณจะต้องลบออกจากคอมไพล์ด้วยตนเองโดยใช้git rm --cached <files>
pixelfreak

21
@SpacyRicochet: การจัดรูปแบบความคิดเห็นเปลี่ยนไปอย่างเห็นได้ชัดตั้งแต่ที่ฉันเขียนความคิดเห็น ดังนั้นตัวเอียง รูปแบบของฉันควรมีลักษณะเช่น * .xcodeproj / *! *. xcodeproj / project.pbxproj แน่นอนว่าวันนี้คุณจำเป็นต้องปรับมันสำหรับพื้นที่ทำงาน
Lily Ballard

64

เกี่ยวกับการยกเว้นไดเรกทอรี 'สร้าง' -

หากคุณวางไฟล์บิลด์ไว้ในไดเรกทอรีอื่นจากแหล่งข้อมูลของคุณอย่างที่คุณทำคุณไม่มีโฟลเดอร์ในแผนผังที่ต้องกังวล

สิ่งนี้ยังช่วยให้ชีวิตของคุณง่ายขึ้นสำหรับการแชร์รหัสของคุณป้องกันการสำรองข้อมูลที่ป่องและแม้กระทั่งเมื่อคุณมีการพึ่งพาโครงการ Xcode อื่น ๆ (ในขณะที่ต้องการให้บิลด์อยู่ในไดเรกทอรีเดียวกันซึ่งกันและกัน)

คุณสามารถคว้าสำเนาล่าสุดจาก Github สรุปสาระสำคัญ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

7
ฉันมีโฟลเดอร์ build ด้านนอกของโฟลเดอร์ project แต่เมื่อผู้ใช้คนอื่นสร้างโครงการโดยค่าเริ่มต้นจะถูกสร้างขึ้นใหม่ในโปรเจ็กต์ดังนั้นฉันจึงพบว่าการเพิ่มลงในไฟล์ละเว้นเป็นวิธีแก้ปัญหาที่ดีกว่า กระทำ
lajos

58

สำหรับ Xcode 4 ฉันยังเพิ่ม:

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

78
หากคุณเพิ่งเพิ่มxcuserdataนั่นก็จะดูแลทั้งสองอย่าง
ma11hew28

7
ด้วยเหตุผลบางอย่างเพียงเพิ่ม xcuserdata โดยไม่มีส่วนนำหน้าไม่ทำงานสำหรับฉัน ฉันคิดว่ามันควรจะเป็น แปลก
BastiBen

24

ฉันรวมคำแนะนำเหล่านี้ไว้ในส่วนที่ฉันสร้างขึ้นใน Github: http://gist.github.com/137348

รู้สึกอิสระที่จะแยกมันและทำให้ดีขึ้น


5
นอกจากนี้หนึ่งใน Github ได้รวบรวมไฟล์. gitignore บางไฟล์ นี่คือ Objective-C เจาะจง one- github.com/github/gitignore/blob/master/Objective-C.gitignore
program247365

นอกจากนี้ยังมีคน Thoughtbot ขึ้นมากับโครงการนี้ - github.com/thoughtbot/liftoffซึ่งจะเพิ่มไฟล์ .gitignore สติเริ่มต้นดูโพสต์บล็อกของพวกมัน: robots.thoughtbot.com/post/33796217972/...
program247365

14

ผู้คนใน GitHub มีไฟล์. gitignore ที่ครบถ้วนและเป็นเอกสารสำหรับโครงการ Xcode:

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

วัตถุประสงค์ -C: https://github.com/github/gitignore/blob/master/Objective-C.gitignore


5
โพสต์นี้ไปยังหนึ่งในคำตอบข้างต้นแล้ว ฉันพบว่าเป็น: ไม่ถูกต้องรองรับอย่างสงสัย (มากกว่า 100 คำขอดึงที่โดดเด่น!) และไม่มีเอกสาร ความจริงที่ว่า "ผิด" นั้นเลวร้ายที่สุดของทั้งหมด พวกเขาได้เพิกเฉยที่ใช้งานได้กับชุดการใช้งานที่แคบและยังไม่ได้อธิบายว่าเกิดอะไรขึ้น! ดังนั้น: คำตอบของฉันด้านบนซึ่งแก้ไขข้อบกพร่องของพวกเขาและอธิบายสิ่งที่กำลังทำอยู่และทำไมคุณจึงสามารถทำการตัดสินใจอย่างมีความรู้ในแต่ละโครงการ (ในโครงการใหม่บางครั้งฉันลืมว่าทำไมบางรายการอยู่ในนั้น - ความคิดเห็นช่วยฉันตัดสินใจ :))
Adam

@Adam: GitHub .gitignoreตอนนี้ได้รับการอัปเดตสำหรับ Xcode 6.3.2 และ Swift ดังนั้นตอนนี้จึงถูกต้อง มันเป็นเอกสารด้วย
Eric

ใช่ แต่ปัญหาในการเผยแพร่ไฟล์ทำลายข้อมูลและทำให้เป็นเช่นนั้นเป็นเวลาหลายเดือนหรือหลายปีและดูเหมือนจะไม่รบกวนการทดสอบอย่างถูกต้องนั่นคือคุณจะเสียสละศรัทธาศรัทธาและความเคารพจากชุมชนอย่างถาวร สายเกินไป.
อดัม

14

คุณควรชำระเงินgitignore.ioสำหรับ 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

1
ใช้ตัวอย่างของคุณเสมอ การตั้งค่าที่ดี! ขอบคุณ!
Nikolay Shubenkov

ฉันไม่ได้ใช้gitignore.ioมาระยะหนึ่งแล้ว - ควรค่าแก่การตรวจสอบถ้าคุณยังไม่มี คุณสามารถใช้มันเพื่อสร้างgitignoreไฟล์สำหรับ IDE / ภาษาอื่น ๆ ที่คุณใช้ มันจะเพิ่มส่วน cocoapods ยอดเยี่ยม
Ashley Mills


10

นี่เป็นสคริปต์ที่ฉันสร้างขึ้นโดยอัตโนมัติเพื่อสร้างไฟล์. gitignore และ. gitattributes ของคุณโดยใช้ Xcode ... ฉันแฮ็คมันพร้อมกับเนื้อหาของคนอื่น มีความสุข!

Xcode-Git-User-Script

ไม่มีการรับประกัน ... ฉันดูดสิ่งนี้มากที่สุด - ดังนั้นจงใช้ด้วยความเสี่ยงของคุณเอง


10

การเพิ่มไฟล์. gitignoreสำหรับ

Mac OS X + Xcode + Swift

นี่คือวิธีที่ฉันเพิ่มไฟล์. gignignore ลงในโครงการ Swift ของฉัน:

  1. เลือกฉายใน Xcode และคลิกขวา→ สร้างกลุ่ม →ตั้งชื่อ " Git "
  2. เลือกโฟลเดอร์ Git และคลิกขวา→ เพิ่มไฟล์ใหม่
  3. ภายในแท็บ iOS →เลือกอื่น ๆไฟล์ว่าง

ป้อนคำอธิบายภาพที่นี่

  1. ตั้งชื่อไฟล์ที่นี่ " .gitignore "

ป้อนคำอธิบายภาพที่นี่

  1. ยืนยันชื่อไฟล์และประเภท

ป้อนคำอธิบายภาพที่นี่

นี่คือโครงสร้างผลลัพธ์:

ป้อนคำอธิบายภาพที่นี่

  1. เปิดไฟล์และวางโค้ดด้านล่าง

# 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

ข้อมูลอ้างอิง: นี่และนี่


1
คำตอบที่มีประโยชน์มาก ฉันเพิ่มมันเป็นลิงก์ในคำตอบการตั้งค่า Github ใน Xcode
Suragch

9

Mine เป็น. bzrignore แต่เป็นแนวคิดเดียวกัน :)

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

tm_build_errors ใช้เมื่อฉันใช้TextMateเพื่อสร้างโครงการของฉัน มันไม่ครอบคลุมพอ ๆ กับ Hagelin แต่ฉันคิดว่ามันคุ้มค่าที่จะโพสต์สำหรับบรรทัด tm_build_errors



4

ฉันได้เพิ่ม:

xcuserstate
xcsettings

และวางไฟล์. gitignore ของฉันที่รากของโครงการของฉัน

หลังจากกระทำและผลักดัน จากนั้นฉันก็วิ่ง:

git rm --cached UserInterfaceState.xcuserstate WorkspaceSettings.xcsettings

ฝังอยู่กับโฟลเดอร์ด้านล่าง:

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

จากนั้นฉันก็วิ่งคอมไพล์แล้วกดอีกครั้ง


คุณเพิ่มหรือยัง หรือนี่คือทั้งหมดที่คุณทำ
hakre

1
ใช่ฉันเพิ่มทั้งสอง แต่ xcusersate เป็นไฟล์ละเมิดหลัก การเพิ่มนั่นเป็นวิธีเดียวที่ฉันสามารถผลักดันรหัสของฉันจากระยะไกล มิฉะนั้นฉันติดอยู่ในลูปข้อเสนอแนะที่จำเป็นต้องกระทำก่อนที่จะผลักดัน ดังนั้นคุณยอมรับแล้ว Xcode 4.5 จะขอให้คุณส่งอีกครั้งและคุณจะไม่สามารถผลักดันได้เนื่องจากข้อกำหนดก่อนการยืนยัน
user1524957

4

ฉันใช้ไฟล์. gitignore ต่อไปนี้สร้างขึ้นใน 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/


2

นี่คือสิ่ง.gitignoreที่ GitHub ใช้เป็นค่าเริ่มต้นสำหรับที่เก็บ Xcode ใหม่:

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

มีโอกาสที่จะถูกต้องตามสมควรในเวลาใดก็ตาม


ไฟล์ github .gitignore เป็นการรวบรวมไฟล์ทั้งหมดที่เราประสบปัญหาในอดีต ตอนนี้ถ้าคุณเริ่มต้นโครงการ Xcode จากการปล่อยให้ Xcode กำหนดค่าพื้นที่เก็บข้อมูล git ไว้ล่วงหน้าไม่เหลืออะไรมากเกินไปที่จะเพิกเฉยใน. gitignore: สิ่งเดียวที่ฉันชอบที่จะเพิกเฉยคือ xcuserdata / ... สิ่งนี้ช่วยไม่ให้คุณยุ่งเหยิง .
crosscode

GitHub เป็นสถานที่แรกที่ฉันเคยมองหา gitignores :)
Ben Leggiero

1

คำตอบส่วนใหญ่มาจากยุค Xcode 4-5 ฉันแนะนำให้ใช้ไฟล์ละเว้นในสไตล์ทันสมัย

# 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

อัปเดตจาก: https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore


0

เราพบว่าแม้ว่าคุณจะเพิ่ม. gitignore และ. gitattribte ไฟล์ * .pbxproj อาจได้รับความเสียหาย ดังนั้นเราจึงมีแผนง่าย ๆ

ทุกคนที่รหัสในสำนักงานเพียงแค่ทิ้งการเปลี่ยนแปลงที่ทำกับไฟล์นี้ ในการส่งเราพูดถึงไฟล์ที่ถูกเพิ่มเข้าไปในซอร์ส จากนั้นกดไปที่เซิร์ฟเวอร์ ผู้จัดการการรวมของเราดีกว่าดึงและดูรายละเอียดการส่งมอบและเพิ่มไฟล์ลงในทรัพยากร

เมื่อเขาอัปเดตรีโมตทุกคนจะมีสำเนาทำงานอยู่เสมอ ในกรณีที่มีบางอย่างขาดหายไปเราแจ้งให้เขาเพิ่มเข้าไปแล้วดึงอีกครั้ง

สิ่งนี้ได้ผลสำหรับเราโดยไม่มีปัญหาใด ๆ


0

ฉันแนะนำให้ใช้joeเพื่อสร้าง.gitignoreไฟล์

สำหรับโครงการ iOS ให้รันคำสั่งต่อไปนี้:

$ joe g osx,xcode > .gitignore

มันจะสร้างสิ่งนี้.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

-3

โครงสร้างของไฟล์ standerd .gitignore สำหรับโครงการ 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/

สิ่งนี้แตกต่างจากคำตอบก่อนหน้านี้อย่างไร อย่าเพิ่งวางgitignoreไฟล์ของคุณที่นี่สิ่งนี้จะไม่เพิ่มอะไรกับเรื่องนี้
Ashley Mills

@AshleyMills โปรดอ่านคำตอบก่อนจากนั้นจึงเพิ่มความคิดเห็น .... คำตอบสำหรับโครงสร้าง standerd / จำเป็นต้อง .... ซึ่งเป็นสิ่งจำเป็นที่จะต้องมี ...
Rahul Singha Roy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.