Git ignore directory except some file

ปกติเมื่อเราไม่ต้องการให้ git track บาง directory เช่น .idea หรือ logs เราจะเขียนที่ไฟล์ .gitignore ดังนี้

.idea/
logs/

แต่บางครั้งเราต้องการเก็บบางไฟล์ภายใต้ directory ไว้ เช่น ต้องการเก็บไฟล์ .idea/vcs.xml เราสามารถยกเว้นไฟล์ดังกล่าวได้ โดยใส่ ! ดังนี้

.idea/*
!.idea/vcs.xml

เพียงเท่านี้ git ก็จะ track ไฟล์ที่เราระบุไว้ 😃