Git dan folder kosong

Oleh kerana Git tidak tahu folder, hanya fail, struktur folder kosong tidak berakhir di repositori. Namun, kerana banyak kerangka kerja dan projek benar-benar memerlukannya, mereka harus berakhir di sana. Amalan biasa adalah membuat fail placeholder yang disebut (sering disebut .gitkeep), yang secara tersirat menentukan struktur folder. Fail-fail ini dapat dibuat dengan mudah dan, jika dikehendaki, juga memastikan bahawa fail lain di folder diabaikan.


Mula-mula kita membuat repositori ujian dan membuat beberapa sub-folder:

434e6616f335599d241482f169f68f1b

Kami sekarang mempunyai struktur folder berikut:

434e6616f335599d241482f169f68f1b

Seperti yang dijangkakan, status git -u menunjukkan kepada kita tidak ada perubahan:

Git dan folder kosong

Kami sekarang akan menggunakan find untuk membuat fail placeholder di semua lokasi yang diperlukan:

434e6616f335599d241482f169f68f1b

Kami kini telah menerima struktur folder / fail berikut:

434e6616f335599d241482f169f68f1b

Status git -u kini menunjukkan kepada kita bahawa semua folder (secara tersirat) berakhir di repositori:

Git dan folder kosong

Sekiranya kita sekarang ingin memastikan bahawa struktur folder selalu berakhir di repositori, tetapi tidak ada fail (selain dari fail placeholder), kami membuat gitignore:

434e6616f335599d241482f169f68f1b

Kami menggunakan Sintaks bintang berganda:

434e6616f335599d241482f169f68f1b

Baris pertama secara berulang-ulang mengabaikan semua fail dan folder (di mana-mana peringkat) dalam folder "foo", baris kedua secara berulang-ulang mengecualikan semua folder dari peraturan ini (pada tahap mana pun) dan baris ketiga tidak termasuk semua fail .gitkeep (pada tahap mana pun) .

Sekarang mari buat beberapa fail ujian:

434e6616f335599d241482f169f68f1b

Status git -u kini menunjukkan kepada kita hasil yang diinginkan:

Git dan folder kosong

Belakang