ฉันตระหนักถึงการใช้.gitignore
ไฟล์เพื่อแยกบางไฟล์ที่ถูกเพิ่ม แต่ฉันมีconfig.php
ไฟล์หลายไฟล์ในแผนผังต้นไม้และฉันจำเป็นต้องยกเว้นไฟล์เดียวที่อยู่ในรูทในขณะที่อื่น ๆ จะอยู่ภายใต้การควบคุมการแก้ไข
สิ่งที่ฉันควรจะเขียน.gitignore
เพื่อทำให้เกิดขึ้น?
ฉันตระหนักถึงการใช้.gitignore
ไฟล์เพื่อแยกบางไฟล์ที่ถูกเพิ่ม แต่ฉันมีconfig.php
ไฟล์หลายไฟล์ในแผนผังต้นไม้และฉันจำเป็นต้องยกเว้นไฟล์เดียวที่อยู่ในรูทในขณะที่อื่น ๆ จะอยู่ภายใต้การควบคุมการแก้ไข
สิ่งที่ฉันควรจะเขียน.gitignore
เพื่อทำให้เกิดขึ้น?
คำตอบ:
จากเอกสาร :
หากรูปแบบไม่มีเครื่องหมายทับ /, git จะถือว่าเป็นรูปแบบเชลล์แบบกลมและตรวจสอบการจับคู่กับชื่อพา ธ ที่สัมพันธ์กับตำแหน่งของไฟล์. gitignore (สัมพันธ์กับระดับบนสุดของแผนผังงานหากไม่ใช่จาก. gitignore ไฟล์).
เครื่องหมายทับนำหน้าตรงกับจุดเริ่มต้นของชื่อพา ธ ตัวอย่างเช่น "/*.c" ตรงกับ "cat-file.c" แต่ไม่ใช่ "mozilla-sha1 / sha1.c"
ดังนั้นคุณควรเพิ่มบรรทัดต่อไปนี้ในรูทของคุณ.gitignore
:
/config.php
/folder/
?
/folder/
หรือไม่/folder
แต่เพิ่มเครื่องหมายทับที่ท้าย จำกัด การจับคู่กับโฟลเดอร์เท่านั้น หากคุณมีไฟล์ชื่อ 'foo' ในไดเรกทอรีราก/foo/
จะไม่เพิกเฉย แต่/foo
จะเป็นเช่นนั้น
git rm --cached <file>
มิฉะนั้นไฟล์จะไม่ถูกละเว้น จาก: stackoverflow.com/a/1274447
/config.php
ใช้
รุ่นที่เก่ากว่าของคอมไพล์คุณต้องกำหนดรูปแบบการละเว้นและทันที (ในบรรทัดถัดไป) กำหนดการยกเว้น [ทดสอบกับเวอร์ชั่น 1.9.3 (Apple Git-50)]
/config.php
!/*/config.php
รุ่นที่ใหม่กว่าต้องการเฉพาะสิ่งต่อไปนี้ [ทดสอบกับรุ่น 2.2.1]
/config.php
หากวิธีการข้างต้นไม่ได้ผลสำหรับคุณให้ลองวิธีนี้:
#1.1 Do NOT ignore file pattern in any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php
##########################
# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php
/config.php
คนเดียวไม่ได้ ฉันอยากรู้ว่าทำไมมันไม่ได้ คุณมีความคิดหรือไม่?
~/.gitignore
ไฟล์ต่าง ๆในเครื่องของตนเองใช่ไหม .. นอกจากนี้ประเด็นของฉันคือคุณเขียนว่า "หากวิธีการแก้ปัญหาข้างต้นใช้งานไม่ได้" ทำไมถึงไม่