ฉันมีโครงการที่มีหลายโครงการ:
- โครงการหลัก
- โครงการขนาดเล็ก 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/barbarfooส่วนท้ายนั้น
/**ตรงกับทุกสิ่งภายใน ตัวอย่างเช่น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 ทั้งหมดที่มีอยู่ในโฟลเดอร์ย่อย