อะไรคือความแตกต่างระหว่าง.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ที่ไม่ได้เป็นส่วนหนึ่งของคอมไพล์