.gitignore Oluşturucu
Kullandığınız dil, framework ve editörleri işaretleyerek .gitignore dosyası oluşturun — Node.js, Python, Java, macOS, Windows, VS Code ve daha fazlası; tekrarsız ve indirmeye hazır.
228 görüntülenme
Nasıl Çalışır
Projenize uyan kutucukları işaretleyin — Node.js, Python veya Java gibi bir dil/çalışma zamanı, macOS, Windows veya Linux gibi bir işletim sistemi, VS Code veya IntelliJ/JetBrains gibi bir editör, ayrıca Git'in kendi artık dosyaları ve .env/gizli bilgiler için ayrı bir blok. Her kutucuk, topluluğun gerçekte kullandığı yerleşik kurallardan derlenmiş küçük ve standart bir yoksayma (ignore) desenleri kümesi ekler — Node için node_modules/, Python için __pycache__/ ve .venv/, Java için *.class ve target/, macOS için .DS_Store, Windows için Thumbs.db gibi. Daha fazla kutucuk işaretledikçe araç her şeyi tek bir listede birleştirir, birebir tekrarları çıkarır ve sonucu bir metin kutusunda anlık gösterir; buradan kopyalayabilir ya da doğrudan .gitignore adlı bir dosya olarak indirebilirsiniz.
Kategorileri sıfırdan tek tek yazmak yerine birleştirmenin sebebi, gerçek projelerin çoğunun aynı anda birkaç kategoriye birden girmesidir: VS Code'da bir Mac üzerinde geliştirilen bir Node.js API'si için, derleme çıktıları için Node bloğu, .DS_Store'un bir pull request'e sızmaması için macOS bloğu ve kişisel editör ayarlarınızın bir takım arkadaşınızınkini ezmemesi için VS Code bloğu gerekir. Üçünü birden işaretleyip tek seferde indirmek, desenleri hafızadan elle bir araya getirmekten veya eski projelerden parça parça kopyalamaktan hem daha hızlı hem daha az hataya açıktır.
Bilinmesi Gerekenler
Bir .gitignore dosyası yalnızca Git'in henüz bilmediği dosyaları etkiler — Git'e hangi takip edilmeyen (untracked) dosyaların git status, git add . ve sonraki commit'lerin dışında bırakılacağını söyler. Zaten takip edilen (en az bir kez commit edilmiş) dosyalar üzerinde hiçbir etkisi yoktur. Bu, en sık karşılaşılan yanlış anlamadır: .env dosyasını, o dosya zaten commit edildikten sonra .gitignore'a eklemek, dosyayı depodan kaldırmaz ya da Git'in ona yapılan sonraki değişiklikleri takip etmesini durdurmaz. Bir dosyayı gerçekten takipten çıkarmak için önce git rm --cached <dosya> komutunu çalıştırmanız gerekir (bu, dosyayı Git'in indeksinden kaldırır ama diskte bırakır), bu kaldırma işlemini commit etmeniz gerekir — ancak o zaman ilgili .gitignore kuralı bundan sonrası için devreye girer.
Burada sunulan desenlerin çoğu, dile ve araca özgü şablonlar için en yaygın referans kaynağı olan ve GitHub'ın kendi web arayüzünden yeni bir depo oluştururken sunduğu aynı koleksiyon olan GitHub'ın resmi github/gitignore deposuna dayanır. node_modules/ gibi bağımlılık klasörlerini ve dist/ veya target/ gibi derleme çıktılarını sürüm kontrolünün dışında tutmak boyut açısından önemlidir — bu klasörler kolayca gerçek kaynak kodunuzun defalarca katına ulaşabilir ve bir kilit dosyasından (lockfile) veya derleme betiğinden önemsizce yeniden üretilebilir — .env, *.pem ve *.key gibi dosyaları dışarıda tutmak ise güvenlik açısından önemlidir: bir gizli bilgiyi Git geçmişine commit etmek, onu fiilen sonsuza dek herkese açık hale getirir, çünkü onu en son commit'ten silmek, geçmişi tamamen yeniden yazmadan onu önceki commit'lerden silmez.
Sıkça Sorulan Sorular
.gitignore'a bir dosya ekledim ama Git hâlâ takip ediyor — neden?
.gitignore yalnızca Git'in henüz bilmediği dosyaların takip edilmesini engeller. Dosya, kuralı eklemeden önce commit edilmişse, .gitignore ne derse desin Git onu takip etmeye devam eder. Bunu düzeltmek için git rm --cached <dosya> (bir klasör için git rm -r --cached <klasör>) komutunu çalıştırıp bu değişikliği commit edin — o andan itibaren .gitignore kuralı devreye girer.
Node.js, macOS ve VS Code gibi birden fazla kategoriyi birlikte seçebilir miyim?
Evet — normal kullanım şekli budur. Kurulumunuza uyan her kutucuğu işaretleyin, araç ortaya çıkan tüm desenleri tek bir listede birleştirir ve birebir tekrarları kaldırarak aynı satırın iki kez görünmesini engeller.
Bu yoksayma desenleri nereden geliyor?
Çoğu araç ve eğitim içeriğinin standart referans olarak gösterdiği GitHub'ın resmi github/gitignore şablon deposuyla aynı kuralları izlerler. Bunlar, bir depo oluştururken GitHub'ın kendi "Add .gitignore" seçeneğiyle bir şablon oluştursanız elde edeceğiniz aynı dosya/klasör desenleridir.
node_modules/ veya .env neden asla commit edilmemeli?
node_modules/, package.json/package-lock.json dosyasından saniyeler içinde yeniden üretilebilen bir bağımlılık önbelleğidir — onu commit etmek, depoyu megabaytlarca (bazen gigabaytlarca) gereksiz dosyayla şişirir. .env farklıdır: genellikle API anahtarları, veritabanı parolaları veya başka gizli bilgiler içerir; bir gizli bilgi Git geçmişine bir kez girdiğinde ele geçirilmiş sayılmalıdır, çünkü onu en son commit'ten silmek önceki commit'lerden kaldırmaz — bunu gerçekten düzeltmenin tek yolu geçmişi yeniden yazmak (ve gizli bilgiyi değiştirmek/rotate etmek)tir.
İndirilen dosyanın adı değiştirilmeli mi?
Hayır. İndir butonu, dosyayı Git'in beklediği tam adla kaydeder — başında nokta olan ve uzantısı olmayan .gitignore — böylece dosyayı doğrudan projenizin kök klasörüne, ilk commit'inizden önce bırakabilirsiniz.
Benzer Araçlar
Sorun Bildir
.gitignore Oluşturucu
Yorumlar
Henüz yorum yok — ilk yorumu siz yazın!