ตัวสร้างไฟล์ .gitignore

ถัดไป

การไม่มี .gitignore คือสาเหตุที่ทำให้กุญแจ API หลุดเข้าไปในประวัติของ Git และทำให้ node_modules ขนาด 400 MB ถูก push ขึ้น GitHub ตัวสร้างนี้จะให้เทมเพลตที่ผ่านการทดสอบสำหรับสแตกของคุณ, Node, Python, Rails หรือ Laravel, โดยตัดโฟลเดอร์ของ dependency, ผลลัพธ์จากการ build และไฟล์สภาพแวดล้อมออกไว้ให้แล้ว

วิธีสร้างไฟล์.gitignore

  1. 1

    เลือกสแตกของคุณ

    Node, Python, Rails หรือ Laravel, แต่ละสแตกล้วนมีไฟล์ชั่วคราวที่เกิดขึ้นเฉพาะตัว

  2. 2

    สร้าง

    เครื่องมือนี้จะรวมกฎทั่วไป (.DS_Store, .env, node_modules) เข้ากับกฎเฉพาะของแต่ละสแตก

  3. 3

    บันทึกเป็นไฟล์.gitignore

    วางไฟล์ไว้ที่รากของ repos ก่อนทำการคอมมิตครั้งแรก

  4. 4

    คอมมิตไฟล์นั้น

    ไฟล์ .gitignore เองก็ควรถูกติดตามด้วย เพราะมันเป็นส่วนหนึ่งของโปรเจกต์ ไม่ใช่การตั้งค่าเฉพาะเครื่องของคุณ

ทำไมบล็อกทั่วไปจึงมีอยู่เสมอ

กฎ เหตุผลในการเพิกเฉย
.DS_Store เมตาดาต้าของ macOS Finder, ไม่มีประโยชน์สำหรับเครื่องอื่นเลย
.env ข้อมูลลับ: กุญแจ API, รหัสผ่านฐานข้อมูล, ข้อมูลประจำตัวสำหรับ OAuth
.env.* รูปแบบเฉพาะของแต่ละสภาพแวดล้อม (staging, production)
!.env.example แต่ควรเก็บไฟล์ตัวอย่างไว้ เพื่อให้ผู้มีส่วนร่วมใหม่ทราบรูปแบบของข้อมูล
node_modules/ ติดตั้งได้จาก package.json; มีขนาดใหญ่และเฉพาะสำหรับแพลตฟอร์มใดแพลตฟอร์มหนึ่ง

กฎเพิ่มเติมเฉพาะของแต่ละสแตก

สแตก กฎที่เพิ่มหลัก ๆ
Node dist/, coverage/, npm-debug.log*
Python __pycache__/, .venv/, *.pyc, .pytest_cache/
Rails log/*, tmp/*, storage/*, /public/assets
Laravel vendor/, /storage/*.key, /public/build, .phpunit.cache/

ข้อผิดพลาดที่พบบ่อย

  • คอมมิต .env เร็วเกินไป แล้วค่อยเพิ่มลงใน .gitignore ในภายหลัง ไฟล์นั้นอยู่ในประวัติแล้ว ให้ใช้ git rm --cached .env และหมุนเปลี่ยน (rotate) ข้อมูลลับทุกอย่างที่เคยอยู่ในไฟล์นั้น
  • เพิกเฉยต่อ .env.example ไปพร้อมกับ .env เพื่อนร่วมทีมจำเป็นต้องใช้ไฟล์ตัวอย่างในการตั้งค่าโปรเจกต์เริ่มต้น
  • แพตเทิร์นที่กว้างเกินไป: *.log อาจซ่อนการตั้งค่า log ที่สำคัญต่อ production ไว้ หากไม่แน่ใจควรระบุให้เจาะจงยิ่งขึ้น
  • ไฟล์เฉพาะแพลตฟอร์มที่ไม่ได้เป็นของเครื่องคุณเพียงคนเดียว: ควรเพิ่มผ่าน .gitignore ที่ใช้ร่วมกัน ไม่ใช่ไฟล์ส่วนตัว

gitignore ส่วนตัว เทียบกับ gitignore ของโปรเจกต์

สำหรับไฟล์บรรณาธิการที่เฉพาะตัวของคุณ (เช่น JetBrains IDEs หรือ Emacs) ควรใช้ค่า gitignore แบบ global (~/.config/git/ignore) แทนการกำหนดค่าแยกต่างหากสำหรับแต่ละโปรเจกต์

คำถามที่พบบ่อย

เพราะ .gitignore ป้องกันเพียงไม่ให้ไฟล์ที่ยังไม่ถูกติดตามถูกเพิ่มเข้ามาเท่านั้น หากต้องการหยุดติดตามไฟล์ที่คอมมิตไปแล้ว ให้รันคำสั่ง git rm --cached path/to/file แล้วคอมมิตการเปลี่ยนแปลง จากนั้นกฎจะตัดไฟล์นั้นออกให้เอง

ไม่ ไฟล์ล็อกควรได้รับการบันทึก (commit) เพื่อให้ทุกสภาพแวดล้อมติดตั้งเวอร์ชันที่เหมือนกันอย่างแม่นยำ การเพิกเฉยต่อไฟล์เหล่านี้จะทำให้เกิดข้อผิดพลาดประเภท “ทำงานได้บนเครื่องของฉัน” อีกครั้ง

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

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

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องมือนี้มีให้บริการในภาษาอื่น