ฉันมีโครงการที่มีหลายโครงการ:
- โครงการหลัก
- โครงการขนาดเล็ก 1
- โครงการขนาดเล็ก 2
node_modules
โฟลเดอร์ที่มีทั้งหมด ฉันต้องการให้คอมไพล์เพิกเฉยต่อโฟลเดอร์ไม่ว่าจะเริ่มจากโฟลเดอร์รูท สิ่งนี้เพื่อเพิ่มใน. gignignore:
*node_modules/*
ฉันมีโครงการที่มีหลายโครงการ:
node_modules
โฟลเดอร์ที่มีทั้งหมด ฉันต้องการให้คอมไพล์เพิกเฉยต่อโฟลเดอร์ไม่ว่าจะเริ่มจากโฟลเดอร์รูท สิ่งนี้เพื่อเพิ่มใน. gignignore:
*node_modules/*
คำตอบ:
เพิ่มสิ่งนี้
node_modules/
เป็น.gitignore
ไฟล์ที่จะไม่สนใจไดเรกทอรีทั้งหมดที่เรียกว่าnode_modules
ในโฟลเดอร์ปัจจุบันและโฟลเดอร์ย่อยใด ๆ
ใช้universal one-linerใน terminal ในไดเรกทอรีโครงการ:
แตะ. gitignore && echo "node_modules /" >> .gitignore && git rm -r - แคช node_modules; สถานะคอมไพล์
มันใช้งานได้ไม่ว่าคุณจะสร้าง.gitignore
หรือไม่ก็ตามไม่ว่าคุณจะเพิ่มnode_modules
การติดตามคอมไพล์หรือไม่ก็ตาม
จากนั้นส่งและรับ.gitignore
การเปลี่ยนแปลง
คำอธิบาย
touch
จะสร้าง.gitignore
ไฟล์หากยังไม่มีอยู่
echo
และ>>
จะผนวกต่อnode_modules/
ท้าย.gitignore
ทำให้node_modules
โฟลเดอร์และโฟลเดอร์ย่อยทั้งหมดถูกละเว้น
git rm -r --cached
ลบnode_modules
โฟลเดอร์ออกจากการควบคุมคอมไพล์ถ้ามันถูกเพิ่มก่อน มิฉะนั้นจะแสดงคำเตือนpathspec 'node_modules' did not match any files
ซึ่งไม่มีผลข้างเคียงและคุณสามารถเพิกเฉยได้อย่างปลอดภัย แฟล็กทำให้การลบซ้ำและรวมถึงแคช
git status
แสดงการเปลี่ยนแปลงใหม่ การเปลี่ยนแปลงที่.gitignore
จะปรากฏขึ้นในขณะที่node_modules
จะไม่ปรากฏขึ้นเนื่องจากไม่มีการติดตามโดย git
touch
ไม่จำเป็นที่นี่: >>
จะสร้างไฟล์หากไม่มีอยู่
touch
มันจำเป็น. >>
จะกลับมาเป็นno such file or directory: .gitignore
อย่างอื่น
echo "node_modules/" > .gitignore
ควรสร้างใหม่ไฟล์ที่มีเนื้อหาต้นฉบับใช้>>
ผนวกข้อความลงบนจุดสิ้นสุดของที่มีอยู่ระบุไฟล์
ลองทำอะไรแบบนี้
**/node_modules
**
ใช้สำหรับการโทรซ้ำในโครงการทั้งหมด
เครื่องหมายดอกจันสองตัวติดต่อกัน
**
ในรูปแบบที่จับคู่กับชื่อพา ธ เต็มอาจมีความหมายพิเศษ:คำนำหน้า
**
ตามด้วยเครื่องหมายทับหมายความว่าตรงกันในไดเรกทอรีทั้งหมด ยกตัวอย่างเช่น**/foo
ตรงกับแฟ้มหรือไดเรกทอรีที่ใดก็ได้เช่นเดียวกับรูปแบบfoo
ตรงกับแฟ้มหรือไดเรกทอรีที่ใดก็ได้ที่เป็นโดยตรงภายใต้ไดเรกทอรีfoo
**/foo/bar
bar
foo
ส่วนท้ายนั้น
/**
ตรงกับทุกสิ่งภายใน ตัวอย่างเช่นabc/**
จับคู่ไฟล์ทั้งหมดภายในไดเรกทอรีabc
เทียบกับตำแหน่งของไฟล์. gitignore ที่มีความลึกไม่ จำกัดเครื่องหมายทับแล้วตามด้วยเครื่องหมายดอกจันสองตัวต่อจากนั้นเครื่องหมายทับจะจับคู่ไดเรกทอรีตั้งแต่ศูนย์ขึ้นไป ยกตัวอย่างเช่น
a/\**/b
การแข่งขันa/b
,a/x/b
,a/x/y/b
และอื่น ๆเครื่องหมายดอกจันอื่น ๆ ที่ต่อเนื่องกันถือว่าไม่ถูกต้อง
node_modules/
?
สิ่งแรกที่สำคัญที่สุดคือการเพิ่ม.gitignore
ไฟล์ในแอพของฉัน ชอบในภาพด้านล่าง
และเพิ่ม.gitignore
ไฟล์ต่อไปในไฟล์ของคุณ
/node_modules
นอกจากนี้คุณยังสามารถเพิ่มไฟล์อื่น ๆ ด้วยเพื่อเพิกเฉยต่อไฟล์เหล่านั้นที่จะถูกพุชด้วย github นี่คือไฟล์บางส่วนที่เก็บไว้ใน. gitignore คุณสามารถเพิ่มพวกเขาตามความต้องการของคุณ #
เป็นเพียงวิธีในการแสดงความคิดเห็นในไฟล์. gignignore
# See https://help.github.com/ignore-files/ for more about ignoring files.
# dependencies
/node_modules
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
สร้างไฟล์. gignignoreในรูทโฟลเดอร์โดยตรงโดยโปรแกรมแก้ไขโค้ดหรือตามคำสั่ง
สำหรับ Mac & Linux
แตะ. gignignore
สำหรับ Windows
echo .gignignore
เปิด. gitignoreประกาศโฟลเดอร์หรือชื่อไฟล์เช่นนี้/ foldername
เพิ่มบรรทัดด้านล่างลงใน. gitignore ของคุณ
*/node_modules/*
สิ่งนี้จะละเว้น node_modules ทั้งหมดในไดเรกทอรีปัจจุบันของคุณเช่นเดียวกับไดเรกทอรีย่อย
คุณสามารถทำได้ด้วย SVN / Tortoise git เช่นกัน
เพียงคลิกขวาที่ node_modules -> Tortitise git -> เพิ่มเพื่อละเว้นรายการ
สิ่งนี้จะสร้าง. gitIgnore ให้กับคุณและคุณจะไม่พบโฟลเดอร์ node_modules ในการจัดเตรียมอีกครั้ง
**node_modules
มันใช้งานได้สำหรับฉัน
วิธีการเรียกซ้ำเพื่อละเว้น node_modules ทั้งหมดที่มีอยู่ในโฟลเดอร์ย่อย