Haruskah Anda melakukan .gitignore ke dalam repositori Git?

497

Apakah Anda pikir ini adalah praktik yang baik untuk melakukan .gitignore menjadi repo Git?

Beberapa orang tidak menyukainya, tetapi saya pikir ini bagus karena Anda dapat melacak riwayat file. Bukan?

Howard
sumber
38
jika tidak, masukkan .gitignore di .gitignore ...
CharlesB
Kemungkinan duplikat Abaikan file .gitignore itu sendiri
Michael Freidgeim

Jawaban:

489

Biasanya ya, .gitignoreini berguna untuk semua orang yang ingin bekerja dengan repositori. Kadang-kadang Anda ingin mengabaikan hal-hal yang lebih pribadi (mungkin Anda sering membuat LOGatau sesuatu. Dalam hal ini Anda mungkin tidak ingin memaksakan hal itu pada orang lain.

Bruce Stephens
sumber
137
+1 "Hal-hal pribadi" dapat disebutkan dalam $GIT_DIR/info/excludeatau ~/.gitconfigfile yang sesuai.
WReach
5
Jika Anda sudah memiliki file yang dicentang, dan Anda ingin mengabaikannya, Git tidak akan mengabaikan file jika Anda menambahkan aturan nanti. Dalam hal ini, Anda harus membuka file terlebih dahulu, dengan menjalankan perintah berikut di terminal Anda:git rm --cached FILENAME
eli-bd
133

Anda biasanya melakukan commit .gitignore. Bahkan, saya pribadi memastikan bahwa indeks saya selalu bersih ketika saya tidak mengerjakan sesuatu. ( git statusseharusnya tidak menunjukkan apa-apa.)

Ada kasus di mana Anda ingin mengabaikan hal-hal yang sebenarnya tidak spesifik untuk proyek. Misalnya, editor teks Anda dapat membuat *~file cadangan otomatis , atau contoh lain adalah .DS_Storefile yang dibuat oleh OS X.

Saya akan mengatakan, jika orang lain mengeluh tentang aturan-aturan yang mengacaukan Anda .gitignore, tinggalkan saja dan alih-alih masukkan ke dalam file tidak termasuk global.

Secara default file ini berada di $XDG_CONFIG_HOME/git/ignore(default ke ~/.config/git/ignore), tetapi lokasi ini dapat diubah dengan mengatur core.excludesfileopsi. Sebagai contoh:

git config --global core.excludesfile ~/.gitignore

Cukup buat dan edit file pengecualian global ke isi hati Anda; itu akan berlaku untuk setiap repositori git yang Anda kerjakan di mesin itu.

Stéphan Kochen
sumber
14
Anda selalu dapat menambahkan # some commentbaris ke .gitignorefile untuk menjelaskan mengapa Anda mengabaikan sesuatu. Mengomentari setiap baris adalah sedikit berlebihan, tapi aku punya telah bagian berlabel # IDE (Eclipse), # OS (Mac OS X)dan # Generated (Perl). Dengan begitu jika seseorang ingin menggunakan OS atau IDE yang berbeda, mereka dapat menambahkan bagian dan kita semua dapat berbagi.
Stuart R. Jefferys
9
jempol untuk "Saya pribadi berusaha memastikan indeks saya selalu bersih ketika saya tidak mengerjakan sesuatu. (status git seharusnya tidak menunjukkan apa-apa.)"
SGhosh
4
Nb. dengan Git modern, nilai defaultnya core.excludesfileadalah ~/.config/git/ignore, sesuai dengan Spesifikasi Direktori Pangkalan XDG
Jakub Narębski
1
+1 untuk global .gitignore- Sangat bermanfaat ketika orang yang bekerja dengan Anda tidak setuju tentang konten .gitignorefile yang didorong atau apakah harus didorong, dan kami semua menggunakan banyak lingkungan pengembang berbeda yang menghasilkan berbagai jenis kebisingan.
Krease
1
davidwalsh.name/global-gitignore beberapa informasi lebih lanjut tentang pengabaian global
Frode Akselsen
11

Saya menaruh commit .gitignore, yang merupakan milik orang lain yang dapat membangun proyek saya bahwa file-file berikut ini diturunkan dan harus diabaikan.

Saya biasanya melakukan hybrid. Saya suka membuat makefile menghasilkan file .gitignore karena makefile akan mengetahui semua file yang terkait dengan proyek yang diterima atau tidak. Kemudian miliki proyek tingkat atas .gitignore yang Anda periksa, yang akan mengabaikan file .gitignore yang dibuat oleh makefile untuk berbagai sub direktori.

Jadi dalam proyek saya, saya mungkin memiliki sub direktori bin dengan semua executable yang dibangun. Kemudian, saya akan membuat makefile saya menghasilkan .gitignore untuk direktori bin itu. Dan di direktori teratas .gitignore yang mencantumkan bin / .gitignore. Yang teratas adalah yang saya laporkan.

Bitdiot
sumber
0

Mengkomit .gitignore bisa sangat berguna tetapi Anda ingin memastikan Anda tidak memodifikasinya terlalu banyak setelahnya terutama jika Anda berpindah antar cabang secara teratur. Jika Anda melakukannya, Anda mungkin mendapatkan kasus di mana file diabaikan di cabang dan tidak di cabang lain, memaksa Anda untuk menghapus atau mengganti nama file secara manual di direktori kerja Anda karena checkout gagal karena akan menimpa file yang tidak dilacak.

Karena itu ya, lakukan commit .gitignore Anda, tetapi tidak sebelum Anda cukup yakin itu tidak akan banyak berubah setelahnya.

pengguna3464496
sumber
-6

Ini adalah praktik yang baik untuk .gitignore setidaknya membangun produk Anda (program, * .o, dll.).

Jakub Narębski
sumber
11
Itu tidak menjawab pertanyaan: haruskah .gitignore itu " .gitignored"?
Charles Wood
6
Memperhatikan, bahwa itu bukan pertanyaan, dan ini tidak jawaban apa yang diminta: "adalah [itu] praktik yang baik untuk melakukan Gitignore menjadi repo Git?".
papercowboy
5
@cayuu saya percaya jawabannya mengatakan "ini adalah praktik yang baik untuk .gitignore" xyz, saya tidak melihat bagaimana ia menjawab pertanyaan. pertanyaannya adalah apakah .gitignore harus dikontrol versi atau tidak.
Nightograph