Apa perbedaan antara .gitignore
dan .gitkeep
? Apakah keduanya sama dengan nama yang berbeda, atau apakah keduanya memiliki fungsi yang berbeda?
Saya sepertinya tidak dapat menemukan banyak dokumentasi .gitkeep
.
.gitkeep
tidak didokumentasikan, karena itu bukan fitur Git.
Git tidak dapat menambahkan direktori yang benar-benar kosong . Orang-orang yang ingin melacak direktori kosong di Git telah membuat konvensi untuk meletakkan file.gitkeep
dalam direktori ini. File itu bisa disebut apa saja; Git tidak memberikan arti khusus pada nama ini.
Ada konvensi yang bersaing untuk menambahkan .gitignore
file ke direktori kosong untuk dilacak, tetapi beberapa orang melihat ini membingungkan karena tujuannya adalah menjaga direktori kosong, bukan mengabaikannya; .gitignore
juga digunakan untuk membuat daftar file yang harus diabaikan oleh Git ketika mencari file yang tidak dilacak.
README
file di subdirektori yang kosong yang berisi sedikit informasi tentang apa subdirektori yang akan digunakan? Tampaknya membingungkan memiliki file bernama.gitkeep
yang sebenarnya bukan bagian dari git..gitignore
File dengan dua baris:*
dan!.gitignore
lebih dari cukup kejelasan untuk menyampaikan apa yang sedang terjadi. Jika diperlukan elaborasi lebih lanjut, tambahkan komentar ke bagian atas file menggunakan#
sintaks..keep
file alih-alih.gitkeep
melestarikan folder kosong ini, karena git bukan satu-satunya sistem kontrol sumber yang tidak melacak folder kosong. Lebih detail di sini: github.com/rails/rails/issues/2800.gitkeep
hanyalah pengganti. File dummy, jadi Git tidak akan melupakan direktori, karena Git hanya melacak file.Jika Anda ingin direktori kosong dan memastikannya tetap 'bersih' untuk Git, buatlah yang
.gitignore
berisi baris-baris berikut di dalam:Jika Anda ingin agar hanya satu jenis file yang dapat dilihat oleh Git, berikut adalah contoh cara memfilter semuanya, kecuali .gitignore dan semua
.txt
file:('#' menunjukkan komentar.)
sumber
!
di depan.gitignore
? Apakah itu untuk menghindari titik?!
meniadakan bagian berikut, seperti biasanya dalam pemrograman.!.gitignore
file abaikan, git tambahkan file kemudian edit, atau paksakan tambahkan dengan konten yang sesuai ("*" untuk mengabaikan semuanya, atau tidak ada yang memastikan folder itu ada) contoh lebih lanjut .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Jika tidak, dan Anda tidak melakukan penambahan paksa, Anda mungkin melupakannya. Dalam kasus sepele, tidak ada masalah, tetapi jika itu adalah file yang lebih besar Anda mungkin kesal. Menggunakan!.gitignore
mencegah Anda dari menembak diri sendiri di kaki Anda. Saya lebih suka, setelah membakar diri di masa lalu.adalah file teks yang terdiri dari daftar file dalam direktori Anda yang git akan abaikan atau tidak tambahkan / perbarui dalam repositori.
Karena Git menghapus atau tidak menambahkan direktori kosong ke repositori, .gitkeep adalah semacam peretasan (saya tidak berpikir itu secara resmi dinamai sebagai bagian dari Git) untuk menyimpan direktori kosong dalam repositori.
Lakukan saja
touch /path/to/emptydirectory/.gitkeep
untuk menambahkan file, dan Git sekarang akan dapat mempertahankan direktori ini di repositori.sumber
.gitignore
Anda inginkan, jika Anda tidak ingin menentukan path lengkap ke setiap folder setiap waktu..gitkeep
file tetapi tidak akan melacak direktori kosong, Hanya folder yang melacak.gitkeep
keberadaan file. kenapa begitu ?.gitignore
s menyelamatkan Anda dari menentukan path lengkap ke setiap folder setiap waktu? Saya pikir saya kehilangan sesuatu yang jelas.