Düzeltme: Gitignore Çalışmıyor
GitHub, kod işbirliği ve depo paylaşımı alanında lider bir öncü olarak ortaya çıkmıştır. GitHub, öncelikle kullanıcıların dağıtılmış sürüm kontrolü ve SCM (kaynak kodu yönetimi) kontrolüne izin veren bir sürüm kontrol yazılımıdır. Bu platform, dünyanın her yerindeki büyük işletmeler ve şirketler tarafından kullanılmaktadır.
Bunun gibi platformların teknik özellikleri ve sorunları vardır. Kodlayıcıların karşılaştığı belirli bir sorun, .gitignore'un GitHub'da çalışmamasıydı. Platform ya .gitignore'u görmezden geldi ya da kısmen çalıştı. Her vaka tamamen farklı bir senaryo olduğu için sorunun her durumda biraz farklı olabileceğini belirtmek ilginçtir. Ancak, listelediğimiz çözümler evrensel olarak çalışacak düzeltmeler içerecektir.
.Gitignore nedir?
Git (veya GitHub), çalışma dizininizdeki her dosyayı görür. Her dosyayı üçten biri olarak karakterize eder:
- izlenen: Bu dosyalar ya işlenmiş ya da geçmişte sahnelenmiştir.
- İzlenmeyen: Bunlar daha önce sahnelenmemiş veya taahhüt edilmemiş dosyalardır.
- Yok sayıldı: Bunlar, kullanıcının Git'e tamamen yok saymasını söylediği dosyalardır.
Bu göz ardı edilen dosyalar senaryodan senaryoya değişebilir ve çoğunlukla makine tarafından oluşturulan dosyalardır veya yapı yapılarıdır. Bu yaygın bir uygulamadır; kendi ihtiyaçlarınıza göre diğer çeşitli dosyaları görmezden geliyor olabilirsiniz. Bu dosyaların bazı örnekleri:
- Derlenmiş kod: Bu dosyalar genellikle .class, .pyc, .ccp vb. uzantılıdır.
- Gizli sistem dosyaları: Bunlar, sistem tarafından işlemleri için kullanılan ancak düz görünümden gizlenen dosyalardır, örneğin, DS_Store veya Thumbs.db, vb.
- Çıktı dizinleri oluşturun: Bunlar çoğunlukla /bin, /out vb. dizinleridir.
- Bağımlılık önbellekleri: Bu dosyalar /node veya /packages modüllerinin içeriği olabilir.
- IDE Yapılandırma dosyaları: Bunlar, çoğunlukla IDE yazılımınız tarafından oluşturulan veya yönetilen yapılandırma dosyalarıdır.
- Çalışma zamanında oluşturulan dosyalar: Çalışma zamanında dosya oluşturan bazı programlar vardır. Bu tür kodlardan biri çalıştırılırsa, çalışma klasörünüzde çalışma zamanında bazı dosyalar oluşturulabilir ve bunları Git'te yoksayabilirsiniz.
Göz ardı etmek istediğiniz dosya, çoğunlukla çalışan deponuzun kökünde kontrol edilen .gitignore adlı özel bir dosyada izlenir. GitHub'ın konuyla ilgili resmi belgelerine göre, belirli bir gitignore komutu yoktur. Bunun yerine, yoksaymak istediğiniz dosyayı manuel olarak düzenlemeniz gerekir. .gitignore dosyası, çalışan deponuzdaki dosya adlarıyla eşleşen kalıplar içerir ve bunlar, belirli bir dosyanın yoksayılıp yoksayılmaması gerektiğini belirlemeye yardımcı olmak için kullanılır.
.gitignore'un çalışmamasına neden olan nedir?
.Gitignore özelliği mükemmel çalışıyor olabilir, ancak onu doğru şekilde yapılandırmamış olabilirsiniz. Tüm anketlerimizde, modülün gerçekten işe yaradığı sonucuna vardık. Kodlayıcıların bu özelliği kullanamamasının nedeni, çoğunlukla dosyayı doğru şekilde yapılandırmamış olmaları veya temel alınan kodda karşılanmayan bazı koşullar olmasıdır.
İşte işinize yarayabilecek bazı çözümler. Her çözüm sizin durumunuzda geçerli olmayabilir, bu nedenle başlangıç koşulları karşılanmıyorsa bir sonrakine geçtiğinizden emin olun.
1. Çözüm: .gitignore Dosyasını Kontrol Etme
.gitignore dosyasının yanlış formatta oluşturulduğunu gördüğümüz ilginç bir durum ortaya çıktı. Bu özel sorun, kullanıcılar dosyayı Windows işletim sisteminde varsayılan Notepad uygulamasını kullanarak oluşturduğunda meydana geldi. Not Defteri'nin dosyayı ANSI biçimi yerine Unicode'da yazdığı ortaya çıktı. Bu çözümde, Not Defteri'ndeki değişiklikleri doğru .gitignore biçiminde kaydedeceğiz ve bunun sorunu çözüp çözmediğine bakacağız.
Not: Not Defteri'ni kullanarak yeni bir dosya oluşturduğunuzda, .txt uzantısını dosyadan kaldırmanız gerekir.
- Yeni bir metin belgesindeki kodu veya değişiklikleri Not Defteri'nde yazdıktan sonra, üzerine tıklayın. Dosya ve seçin Farklı kaydet.
- şimdi önünde kodlama, seç ANSI. Şimdi .txt dosya uzantısını kaldırın ve dosyayı 'adıyla kaydedin..gitignore'. Doğru dizini seçin ve kaydedin.
- Şimdi dizine gidin ve doğru dosyanın oluşturulup oluşturulmadığını kontrol edin. Şimdi Git ile tekrar test edin ve Yoksay özelliğinin beklendiği gibi çalışıp çalışmadığını görün.
Geliştiriciler, Windows'ta varsayılan Not Defteri'ni kullanmaktan kaçınmalıdır. Bunun yerine, uygun 'programcılar' not defteri kullanmalısınız. Bazı örnekler Notepad++ vb. içerir. Bunlarda böyle sorunlar yaşamazsınız.
Not: Dosyanız zaten UNICODE formatında kaydedilmişse, dosyanızın Git tarafından düzgün bir şekilde algılanmasını istiyorsanız, içeriği ANSI formatında düzgün bir şekilde kaydetmelisiniz.
2. Çözüm: Yoksaymaya çalıştığınız Dosyayı Kontrol Etme
.gitignore'un çalıştığı diğer bir koşul da dosyanızın henüz deponun bir parçası. Bu çok önemli bir husus, sanki bu doğru, dosya olduğu gibi görmezden gelinmeyecek. Çoktan eklenmiş depoya. Git, adını veya kuralını .gitignore dosyasına yerleştirseniz bile bunu görmezden gelemez. Yani özünde Git yalnızca yok sayar izlenmeyen dosyalar.
Yapınıza (depo) bakmalı ve şu anda yok saymaya çalıştığınız dosyanın havuza eklenmediğinden emin olmalısınız. Eğer öyleyse, dosyayı depodan kaldırmanız ve en son değişiklikler yapıldıktan sonra adını .gitignore'a eklemeniz gerekir (dosyanın içeriğini de kopyalayabilir ve sildikten sonra farklı bir adla çoğaltabilirsiniz) .
3. Çözüm: Dosyaları Depoya Yeniden Ekleme
.gitignore'a zaten kurallar eklediyseniz ancak yok saymak istediğiniz dosyalar zaten eklenmişse, dosyaları yeniden ekleyebiliriz. Ekleme, her şeyi Git'in dizininden kaldıracağımız ve ardından her şeyi tekrar deponuza ekleyeceğimiz anlamına gelir. Dosyaları yeniden sıfırdan eklediğimizde .gitignore içinde eklemiş olduğunuz kurallar akılda tutulacak ve sadece doğru dosyalar eklenecektir.
Not: Bu çözümü gerçekleştirmeden önce kodunuzu başka bir yere de yedeklemelisiniz. Her ihtimale karşı yedek almak her zaman iyidir.
- Aşağıdaki komutu yürütün. Bu, dosyalarınızın yollarını git dizininden özyinelemeli bir şekilde aşacak ve kaldıracaktır.
git rm -r --cached .
- Bu yürütüldükten sonra aşağıdaki komutu yürütmelisiniz. Bu, tüm dosyalarınızı geri ekleyecektir ve .gitignore'un kuralları olacağından, yalnızca doğru dosyalar güncellenecektir.
git ekle.
- Şimdi aşağıdaki kodu kullanarak tüm dosyalarınızı dizine geri göndereceğiz:
git commit -m ".gitignore artık çalışıyor"
Şimdi dosyalarınızı inceleyin ve sorunun çözülüp çözülmediğine bakın ve .gitignore'u herhangi bir sorun olmadan tekrar kullanabilirsiniz.