อะไรคือความแตกต่างระหว่าง.gitignore
และ.gitkeep
? พวกเขาเหมือนกันกับชื่อที่แตกต่างกันหรือว่าพวกเขาทั้งสองทำหน้าที่แตกต่างกัน?
ฉันดูเหมือนจะไม่สามารถค้นหาเอกสารจำนวนมาก.gitkeep
ได้
อะไรคือความแตกต่างระหว่าง.gitignore
และ.gitkeep
? พวกเขาเหมือนกันกับชื่อที่แตกต่างกันหรือว่าพวกเขาทั้งสองทำหน้าที่แตกต่างกัน?
ฉันดูเหมือนจะไม่สามารถค้นหาเอกสารจำนวนมาก.gitkeep
ได้
คำตอบ:
.gitkeep
ไม่ได้ทำเป็นเอกสารเพราะไม่ใช่คุณสมบัติของ Git
Git ไม่สามารถเพิ่มไดเรกทอรีว่างเปล่า ผู้ที่ต้องการติดตามไดเรกทอรีว่างใน Git ได้สร้างหลักการของการวางไฟล์ที่เรียก.gitkeep
ในไดเรกทอรีเหล่านี้ ไฟล์สามารถเรียกว่าอะไรก็ได้ Git ไม่ได้ให้ความสำคัญเป็นพิเศษกับชื่อนี้
มีวิธีการแข่งขันในการเพิ่ม.gitignore
ไฟล์ลงในไดเรกทอรีว่างเปล่าเพื่อรับการติดตาม แต่บางคนมองว่าสิ่งนี้สับสนเนื่องจากเป้าหมายคือการทำให้ไดเรกทอรีว่างไม่สนใจมัน .gitignore
ยังใช้เพื่อแสดงรายการไฟล์ที่ Git ควรละเว้นเมื่อค้นหาไฟล์ที่ไม่ได้ติดตาม
.gitignore
ไฟล์ที่มีสองบรรทัด: *
และ!.gitignore
มีความชัดเจนเพียงพอที่จะถ่ายทอดสิ่งที่เกิดขึ้น หากต้องการรายละเอียดเพิ่มเติมให้เพิ่มความคิดเห็นไปที่ด้านบนของไฟล์โดยใช้#
ไวยากรณ์
.keep
ไฟล์แทน.gitkeep
การเก็บรักษาโฟลเดอร์ว่างเหล่านี้เนื่องจาก git ไม่ใช่ระบบควบคุมแหล่งเดียวที่ไม่ติดตามโฟลเดอร์ว่าง รายละเอียดเพิ่มเติมได้ที่นี่: github.com/rails/rails/issues/2800
.gitkeep
เป็นเพียงตัวยึดตำแหน่ง ไฟล์จำลองดังนั้น Git จะไม่ลืมเกี่ยวกับไดเรกทอรีเนื่องจาก Git ติดตามเฉพาะไฟล์
หากคุณต้องการไดเรกทอรีที่ว่างเปล่าและตรวจสอบให้แน่ใจว่ามันยังคง 'สะอาด' สำหรับ Git ให้สร้าง.gitignore
บรรทัดต่อไปนี้ภายใน:
# .gitignore sample
###################
# Ignore all files in this dir...
*
# ... except for this one.
!.gitignore
หากคุณต้องการให้ Git มองเห็นไฟล์ประเภทเดียวนี่คือตัวอย่างวิธีการกรองทุกอย่างยกเว้น. gitignore และ.txt
ไฟล์ทั้งหมด:
# .gitignore to keep just .txt files
###################################
# Filter everything...
*
# ... except the .gitignore...
!.gitignore
# ... and all text files.
!*.txt
('#' หมายถึงความคิดเห็น)
!
อยู่หน้า.gitignore
? นั่นคือเพื่อหนีจุดหรือไม่
!
ส่วนต่อไปนี้เหมือนปกติในการเขียนโปรแกรม
!.gitignore
ในคอมไพล์ไม่สนใจไฟล์ทั้งเพิ่มไฟล์แล้วแก้ไขมันหรือแรงเพิ่มที่มีเนื้อหาที่เหมาะสม ( "*" ที่จะไม่สนใจทุกอย่างหรืออะไรเพียงแค่ให้แน่ใจว่าโฟลเดอร์ที่มีอยู่) ตัวอย่างเพิ่มเติม
Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ ถ้าไม่ใช่, และคุณไม่เพิ่มพลัง, คุณอาจลืมมันไปได้ ในกรณีเล็ก ๆ น้อย ๆ ไม่มีปัญหา แต่ถ้ามันเป็นไฟล์ที่ใหญ่กว่าคุณอาจอารมณ์เสีย การใช้!.gitignore
จะป้องกันไม่ให้คุณยิงตัวเองด้วยการเดินเท้า ฉันชอบมันมากเมื่อก่อนเผาตัวเอง
.gitignore
เป็นไฟล์ข้อความที่ประกอบด้วยรายการไฟล์ในไดเรกทอรีของคุณที่ git จะละเว้นหรือไม่เพิ่ม / อัพเดทในพื้นที่เก็บข้อมูล
.gitkeep
เนื่องจาก Git ลบหรือไม่เพิ่มไดเรกทอรีว่างลงในที่เก็บ. gitkeep จึงเป็นแฮ็ค
เพียงทำtouch /path/to/emptydirectory/.gitkeep
เพื่อเพิ่มไฟล์และตอนนี้ Git จะสามารถรักษาไดเรกทอรีนี้ในที่เก็บได้
.gitignore
เท่าที่คุณต้องการหากคุณไม่ต้องการระบุพา ธ เต็มไปยังทุกโฟลเดอร์ทุกครั้ง
.gitkeep
ไฟล์ แต่จะไม่ติดตามไดเรกทอรีว่างเปล่าเฉพาะโฟลเดอร์ติดตามที่.gitkeep
มีไฟล์อยู่ ทำไมเป็นเช่นนั้น
.gitignore
ช่วยให้คุณประหยัดจากการระบุเส้นทางแบบเต็มไปยังทุกโฟลเดอร์ทุกครั้งหรือไม่ ฉันคิดว่าฉันขาดอะไรบางอย่างที่ชัดเจน
README
ไฟล์ในไดเรกทอรีย่อยที่ว่างเปล่าที่มีข้อมูลเล็กน้อยเกี่ยวกับสิ่งที่ไดเรกทอรีย่อยนั้นจะถูกใช้เพื่อ? ดูเหมือนสับสนว่ามีไฟล์ชื่อ.gitkeep
ที่ไม่ได้เป็นส่วนหนึ่งของคอมไพล์