จะเพิกเฉยไดเรคทอรี / ไฟล์ที่ซ่อนอยู่ซ้ำ ๆ ใน repository ได้อย่างไร?


128

ฉันต้องการให้ Git เพิกเฉยต่อไฟล์และไดเรกทอรีที่ซ่อนอยู่ทั้งหมด กล่าวคือ

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

มีกฎง่ายๆที่จะครอบคลุมสิ่งนี้โดยไม่เพิ่มเฉพาะแต่ละรายการหรือไม่

คำตอบ:


165

เพียงเพิ่มรูปแบบลงใน .gitignore

.*
!/.gitignore

แก้ไข:เพิ่ม.gitignoreไฟล์เอง (สำคัญถ้ายังไม่ได้ทำ)


3
คุณอาจต้องการเพิ่มไฟล์บางไฟล์ที่จำเป็นหลังจากนี้ เช่น. ไฟล์. htaccess ตามความต้องการของคุณแน่นอน
dakdad

3
@dakdad: ขอบคุณสำหรับคำแนะนำ ปรับปรุงคำตอบ หาก Poe มีไฟล์พิเศษบางอย่างเช่น.htaccessมีการตรวจสอบแล้วไฟล์เหล่านั้นจะถูกติดตาม gitignoreสำคัญสำหรับไฟล์ใหม่เท่านั้น
Daniel Böhmer

@ DanielBöhmerบางทีนี่อาจจะเป็นการปิดเรื่อง แต่มีเหตุผลสำหรับการยกเลิกการเพิกเฉยเท่านั้น/.gitignoreและไม่ใช่ทุก.gitignoreไฟล์โดยไม่คำนึงว่ามันอยู่ที่ไหน? คือทำไมไม่แสดง!.gitignore(ไม่มีสแลช)
Jason Young

1
@JasonYoung คำถามที่น่าสนใจ รูปแบบนี้จะไม่สนใจไฟล์เอง ฉันพบว่ามันกระชับมากขึ้นโดยไม่มีผลข้างเคียงสำหรับตัวอย่างในการคัดลอกและวาง แน่นอนคุณสามารถยกเลิกการเพิกเฉย.gitignoreไฟล์ใด ๆในไฟล์ระดับบนสุดของคุณ.gitignoreได้ แต่ตัวเลือกนั้นขึ้นอยู่กับคุณ
Daniel Böhmer

64

. gitignoreจะมีผลกับไฟล์ที่ยังไม่ได้เพิ่ม

หากต้องการสร้างรายการ. gitignore ใหม่จะมีผลกับไฟล์ทั้งหมด

  1. ทำการเปลี่ยนแปลง. gitignore
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status ควรเอาท์พุท "ไม่มีอะไรให้คอมมิท (ไดเรกทอรีทำงานสะอาด)"

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

21

ใน.git/info/excludeเพิ่มบรรทัดนี้:

.*

สิ่งนี้จะทำให้การเพิกเฉยไฟล์ที่ถูกซ่อน / จุดทั้งหมดเป็นค่าเริ่มต้นซ้ำสำหรับที่เก็บข้อมูลทั้งหมดในเครื่อง .gitignoreไม่จำเป็นต้องใช้ไฟล์แยกต่างหากสำหรับ repo ทุกอัน

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