Git depolarına .gitignore işlemek gerekir mi?


Yanıtlar:


489

Normalde evet, .gitignoredepo ile çalışmak isteyen herkes için yararlıdır. Bazen daha fazla özel şeyi göz ardı etmek isteyeceksiniz (belki de çoğu zaman yaratırsınız LOGya da bir şey.


137
+1 "Özel şeyler" $GIT_DIR/info/excludeveya ~/.gitconfigdosyalarında uygun şekilde belirtilebilir .
W

5
Zaten teslim edilmiş bir dosyanız varsa ve yoksaymak istiyorsanız, daha sonra bir kural eklerseniz Git dosyayı görmezden gelmez. Bu durumlarda, terminalinizde aşağıdaki komutu çalıştırarak önce dosyayı açmalısınız:git rm --cached FILENAME
eli-bd

133

Genellikle yapmak işlemek .gitignore. Aslında, kişisel olarak bir şey üzerinde çalışmadığımda dizinimin her zaman temiz olduğundan emin olun. ( git statushiçbir şey göstermemelidir.)

Gerçekten projeye özgü olmayan şeyleri göz ardı etmek istediğiniz durumlar vardır. Örneğin, metin düzenleyiciniz otomatik *~yedekleme dosyaları oluşturabilir veya başka bir örnek .DS_StoreOS X tarafından oluşturulan dosyalar olabilir .

Diyorum ki, diğerleri sizin bu kuralları karıştırmaktan şikayet ediyorsa .gitignore, onları dışarıda bırakın ve bunun yerine global bir dışlama dosyasına koyun.

Varsayılan olarak bu dosyada bulunur $XDG_CONFIG_HOME/git/ignore(varsayılan olarak ~/.config/git/ignore), ancak bu konum core.excludesfileseçeneği ayarlanarak değiştirilebilir . Örneğin:

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

Sadece global excludesfile dosyasını kalbinizin içeriğine oluşturun ve düzenleyin; bu makinede üzerinde çalıştığınız her git deposuna uygulanır.


14
Neden bir şeyi görmezden geldiğinizi açıklamak # some commentiçin .gitignoredosyaya her zaman satır ekleyebilirsiniz . Her çizgiyi yorumlarında biraz overkill, ama bölümler etiketli var olması , ve . Bu şekilde biri farklı bir işletim sistemi veya IDE kullanmak isterse bir bölüm ekleyebilir ve hepimiz paylaşabiliriz. # IDE (Eclipse)# OS (Mac OS X)# Generated (Perl)
Stuart R. Jefferys

9
"Bir şey üzerinde çalışmadığımda kişisel olarak dizinimin her zaman temiz olduğundan emin
oluncaya kadar gidiyorum

4
Nb. modern Git ile varsayılan değer core.excludesfileşudur: ~/.config/git/ignoreXDG Temel Dizin Özellikleri
Jakub Narębski

1
Global için +1 .gitignore- Birlikte çalıştığınız insanlar itilen .gitignoredosyaların içeriği veya itilmeleri gerekip gerekmediği konusunda çok faydalıdır ve hepimiz farklı türde gürültü üreten tonlarca farklı geliştirme ortamı kullanıyoruz.
17'de

1
davidwalsh.name/global-gitignore küresel görmezden gelme hakkında daha fazla bilgi
Frode Akselsen

11

Aşağıdaki dosyaları türetildiğini ve göz ardı edilmesi gerektiğini projemi oluşturabilen diğer bir kişinin nezaketi olan taahhüt .gitignore'u koydum.

Genellikle bir melez yapıyorum. Makefile proje ile ilişkili tüm dosyaları bilecektir çünkü makefile .gitignore dosyasını oluşturmak istiyorum. Daha sonra çeşitli alt dizinler için makefile tarafından oluşturulan oluşturulan .gitignore dosyalarını yok sayar, kontrol ettiğiniz bir üst düzey proje .gitignore var.

Bu yüzden projemde, tüm yerleşik yürütülebilir dosyaları içeren bir bin alt dizinine sahip olabilirim. Sonra, makefile o bin dizini için bir .gitignore oluşturmak gerekir. Ve üst dizinde bin / .gitignore listeleyen .gitignore. En üstte check-in yaptığım.


0

.Gitignore işlemek çok yararlı olabilir, ancak özellikle şubeler arasında düzenli olarak geçiş yaparsanız bundan sonra çok fazla değişiklik yapmadığınızdan emin olmak istersiniz. Bunu yaparsanız, dosyaların bir dalda göz ardı edildiği, diğerinde yok sayıldığı durumlarda, izlenmeyen bir dosyanın üzerine yazılacağı için bir ödeme başarısız olduğu için iş dizininizdeki dosyaları el ile silmeye veya yeniden adlandırmaya zorlayabilirsiniz.

Bu nedenle evet, .gitignore'unuzu taahhüt edin, ancak bundan sonra çok fazla değişmeyeceğinden makul bir şekilde emin olmadan önce değil.


-6

.gitignore En azından yapı ürünleriniz (programlar, * .o, vb.) İçin iyi bir uygulamadır .


11
Bu soruya cevap vermedi: .gitignore kendisi " .gitignored" olmalı mı?
Charles Wood

6
Dikkatini soru değildi ve bu yapar isteneni cevap: "[o] iyi bir uygulama, bir Git repo içine .gitignore işlemeye nedir?".
papercowboy

5
@cayuu Cevabın ".gitignore için iyi bir uygulama olduğunu" söylediğine inanıyorum xyz, soruyu nasıl cevapladığını göremiyorum. soru .gitignore'un sürüm kontrollü olup olmamasıdır.
nightograph
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.