ฉันต้องการให้คอมไพล์ละเว้นUserInterfaceState.xcuserstate
ไฟล์ของฉันในโปรเจ็กต์ XCode4 ของฉัน แต่ฉันควรวาง.gitignore
ไฟล์ไว้ที่ไหนมันอยู่ใน.git
โฟลเดอร์หรือไม่ หรือออก? .git
อยู่ในโฟลเดอร์เดียวกันกับProjectName.xcodeproj
ไฟล์
ฉันต้องการให้คอมไพล์ละเว้นUserInterfaceState.xcuserstate
ไฟล์ของฉันในโปรเจ็กต์ XCode4 ของฉัน แต่ฉันควรวาง.gitignore
ไฟล์ไว้ที่ไหนมันอยู่ใน.git
โฟลเดอร์หรือไม่ หรือออก? .git
อยู่ในโฟลเดอร์เดียวกันกับProjectName.xcodeproj
ไฟล์
คำตอบ:
คุณสามารถมี.gitignore
ไดเร็กทอรีเดียวของโครงการของคุณ
อย่างไรก็ตามแนวทางปฏิบัติที่ดีที่สุดคือการมี.gitignore
ไฟล์เดียวในไดเร็กทอรีรากของโปรเจ็กต์และวางไฟล์ทั้งหมดที่คุณต้องการละเว้นไว้ในนั้นดังนี้:
ignoredFile.whatever
ignoredDirectory/*
directory/ignoredFileInsideDirectory
.svn
เมื่อคุณสร้าง.gitignore
ไฟล์ไฟล์ละเว้นที่มีการเปลี่ยนแปลงหรือเป็นไฟล์ใหม่ในที่เก็บจะไม่แสดงเป็นรอการคอมมิต
คุณยังสามารถมีไฟล์ละเว้น git ภายในเครื่องเดียวซึ่งจะจัดการที่เก็บ git ทั้งหมดของคุณ
git config --global core.excludesfile ~/.gitignore_global
ทางเลือกนี้น่าสนใจอย่างยิ่งสำหรับไฟล์ที่ถูกละเว้นซึ่งไม่เกี่ยวข้องกับโครงการเช่นไฟล์ที่เกี่ยวข้องกับ IDE เป็นต้น
มีวิธีการละเว้นไฟล์ใน git:
~/.gitignore_global
พา ธ วิธีนี้ดีหากคุณต้องการยกเว้นไฟล์บางประเภทที่สร้างโดยระบบปฏิบัติการหรือเครื่องมือบันทึกการแคชและอื่น ๆ.git/info/exclude
ไฟล์ในที่เก็บของคุณ กฎที่ระบุภายใต้ไฟล์นี้จะไม่ถูกผูกมัดซึ่งหมายความว่าจะไม่ถูกแชร์กับผู้อื่น โดยทั่วไปวิธีนี้มีประโยชน์ในการป้องกันการคอมมิตไฟล์ที่สร้างขึ้นภายในเครื่อง ตัวอย่างเช่นสำหรับไฟล์ที่สร้างโดยผู้แก้ไขของคุณ.gitignore
ในพา ธ ย่อยของที่เก็บเฉพาะของคุณ วิธีนี้มักใช้เพื่อละเว้นไฟล์บางประเภทภายใต้โฟลเดอร์เฉพาะของที่เก็บเฉพาะ แม้ว่าไฟล์นี้สามารถเพิ่มลงในการควบคุมเวอร์ชันโดยพา ธ อื่นและที่เก็บอื่น ๆดังนั้นคำแนะนำของฉันสำหรับคุณคือถ้าคุณต้องการละเว้นไฟล์เฉพาะของคุณ ( UserInterfaceState.xcuserstate
) ในที่เก็บทั้งหมดของคุณแนวทางที่ดีที่สุดคือการใช้ global git ไม่สนใจวิธีการ อย่างไรก็ตามหากไฟล์ของคุณสร้างขึ้นเฉพาะในที่เก็บเฉพาะคุณสามารถใช้วิธีละเว้น git ต่อที่เก็บได้
สำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านนี้โพสต์บล็อกที่ดี และมีการต่อเฉพาะภาษา Git ไม่สนใจกฎสามารถก่อตั้งขึ้นที่นี่ และคุณสามารถสร้างกฎการละเว้นคอมไพล์ทั่วไปโดยอัตโนมัติสำหรับภาษาเครื่องมือหรือระบบปฏิบัติการเฉพาะโดยใช้เว็บไซต์นี้
คุณควรใส่ไฟล์. gitignore ลงในไดเร็กทอรีรูทของโปรเจ็กต์
ฉันควรวาง
.gitignore
ไฟล์ไว้ที่ไหนมันอยู่ในโฟลเดอร์. git หรือไม่
ไม่มี.gitignore
ภายใน.git
โฟลเดอร์
อย่างไรก็ตาม.git/info/exclude
ไฟล์นี้เป็นไฟล์ที่ช่วยให้คุณสามารถยกเว้นไฟล์ในเครื่องได้โดยทั่วไปเมื่อคุณต้องการยกเว้นไฟล์สำหรับ repo เฉพาะนี้ (ที่มีนามแฝงเช่นนี้ ):
git config alias.exclude "!sh -c 'echo \"$1\" >> .git/info/exclude' -"
git exclude UserInterfaceState.xcuserstate
หากคุณต้องการยกเว้นไฟล์นี้สำหรับโปรเจ็กต์ที่คล้ายกันทั้งหมดตามที่Elnur Abdurrakhimovกล่าวถึงในคำตอบของเขาให้ไม่รวมไฟล์นี้ทั่วโลก
echo UserInterfaceState.xcuserstate >> ~/.gitignore
แต่ตามที่กล่าวไว้ใน " เราจำเป็นต้องเช็คอิน * .xcuserstate หรือไม่ " หากเป็นไฟล์ประเภทหนึ่งที่ผู้ใช้ repo นั้นควรละเว้นฉันจะใช้เวอร์ชัน. gitignore ที่ด้านบนของ repo ที่มีเนื้อหาคล้ายกับ:
*.xcuserstate
ด้วยวิธีนี้ผู้ใช้ repo นั้นจะไม่รู้ด้วยซ้ำว่ามีไฟล์นี้อยู่และถูกสร้างขึ้น (ไม่ว่าจะเป็นชื่ออะไรก็ตาม) มันจะไม่ปรากฏขึ้นgit status
เลย
หรือคุณสามารถละเว้นxcuserdata/
ทั้งหมด (ทั้งในส่วนกลาง.gitignore
หรือในเวอร์ชันที่เป็นเวอร์ชันเช่นไฟล์GitHub ทั่วไปObjective-C.gitignore
คุณไม่ควรใส่ไฟล์เฉพาะเครื่องมือลงในไฟล์ของโปรเจ็กต์.gitignore
- เว้นแต่ว่าผู้พัฒนาแต่ละรายของโปรเจ็กต์จะต้องใช้เครื่องมือนั้น
ให้สร้าง.gitignore
ไฟล์ส่วนกลางส่วนบุคคลของคุณในโฮมไดเร็กทอรีของคุณแทนและเปิดใช้งาน:
git config --global core.excludesfile ~/.gitignore
ตอนนี้คุณสามารถใส่ไฟล์ใดก็ได้ที่สร้างโดยเครื่องมือพัฒนาของคุณลงใน.gitignore
ไฟล์ของคุณ
โดยทั่วไปแนวทางปฏิบัติที่ดีที่สุดในการรวม.gitignore
ไฟล์ไว้ในไดเรกทอรีรากของโครงการ