gi-all
v1.1.2
Published
The only modular, category-based .gitignore generator you'll ever need.
Maintainers
Readme
gi-all
🌟 İhtiyacın Olan Son .gitignore Üreticisi
gi-all, modern ekipler ve iddialı solo geliştiriciler için tasarlanmış modüler, kategori bazlı bir .gitignore üreticisidir.
Tek bir şişmiş “mega.gitignore” yerine, gi-all sana yüzlerce odaklı şablondan oluşan bir kütüphane sunar (Angular, Unity, Android, Flutter, Node.js, Laravel, Docker ve çok daha fazlası) ve bunları birkaç tıklamayla kendi stack’ine göre birleştirir.
💡 Neden gi-all?
Çoğu .gitignore çözümü iki hatadan birine düşer:
- Çok küçük: Sadece bir dil seçersin, ama IDE ayarları, build çıktıları veya platform çöpü yine de repoya girer.
- Çok büyük: İnternetten rastgele bir “mega.gitignore” kopyalarsın ve binlerce alakasız kuralı anlamadan projene gömersin.
gi-all bambaşka bir yaklaşım sunar:
- Modüler tasarım – Her teknoloji,
templates/klasöründe kendi özel.gitignoredosyasında yaşar. - Dinamik tarama – CLI, çalıştığı anda
templates/klasörünü tarar; her bir.gitignoreotomatik olarak desteklenir. Yeni bir dosya eklediğinde, kod yazmana gerek kalmadan menüye eklenir. - Kategori bazlı UX – Önce yüksek seviye alanları seçersin (Frontend, Backend, Mobile, DevOps & Cloud, IDE & Editor, Database, Game & 3D, Data & Science, Other), sonra bu kategorilerin içinden kullandığın teknolojileri işaretlersin.
- Elle merge yok – Stack’ini seç (Angular + Node + Android + Unity + Docker + VS Code…) ve
gi-all:- Tüm ilgili
.gitignoreşablonlarını okur - Tek bir akıllı
.gitignoreiçinde birleştirir - Aynı satırları tekilleştirir, gereksiz boşlukları temizler
- Zorunlu güvenlik kurallarını ekleyerek sırlarının commit olmasını engeller
- Tüm ilgili
Sonuç: Stack’ine özel, sade ama eksiksiz bir .gitignore.
🛠️ Dev Şablon Kütüphanesi (500+ Şablon)
Kutudan çıktığı haliyle gi-all, templates/ altında yüzlerce odaklı .gitignore şablonu ile gelir. Örnekler:
- Frontend & Web: React, Next.js, Angular, Vue, Svelte, Astro, Remix, Gatsby, Webpack, Vite, Tailwind CSS, Storybook…
- Mobile & Cross‑platform: Android, iOS, React Native, Flutter, Ionic, Capacitor, NativeScript…
- Backend & API: Node.js, Express, NestJS, Django, Flask, Laravel, Symfony, Spring, Rails, FastAPI…
- Game & 3D: Unity, Unreal Engine, Godot, libGDX, FlaxEngine, MonoGame, PICO‑8…
- Cloud & DevOps: Docker, Kubernetes, Terraform, Ansible, Vagrant, Cloudflare, Snap/Snapcraft…
- Editör & IDE: VS Code, JetBrains IDE’leri (WebStorm, Rider, vb.), Vim, Emacs, Sublime, Xcode, Android Studio, NetBeans…
- Veritabanları: Redis, PostgreSQL, MySQL, MongoDB, MSSQL…
- Bilgi & Araçlar: Obsidian/Notion export’ları, ERP sistemleri, farklı diller ve özel tool’lar…
Her teknoloji kendi .gitignore dosyasına sahiptir. CLI, templates/ altındaki her dosyayı indeksler, böylece:
- Hiçbir şablon “unutulmaz” veya hard-code edilmez.
- Yeni bir şablon eklediğinde, CLI otomatik olarak onu da kullanır.
templates/ içinde yaşıyorsa, gi-all onun için .gitignore üretebilir.
🛡️ Güvenlik Öncelikli Tasarım
.env dosyalarını veya private key’leri yanlışlıkla Git’e itmek pahalı bir hatadır — genelde de sadece “unutulmuş” bir ignore kuralından kaynaklanır.
gi-all güvenliği en baştan tasarıma dahil eder:
.env,.env.*,*.envve yaygın environment varyantları- Özel anahtar ve sertifikalar:
*.key,*.pem,*.p12,*.cert,*.crt,*.pfx,id_rsa*,id_ed25519, vb. - Ortak secret store’lar:
secrets.*,*.kdbx node_modules/ve yaygın debug log dosyaları- OS / editör gürültüsü:
.DS_Storevb.
Bu kurallar her durumda, otomatik olarak seçtiğin şablonların sonuna eklenir.
Bir şablon eksik veya hatalı olsa bile, gi-all yine de sırlarını korumaya çalışır.
gi-allkullanırken.envveya key dosyalarını yanlışlıkla commit etmek oldukça zor olmalı.
⚙️ Nasıl Çalışır?
- Tarama: CLI çalıştığında
templates/klasörünü recursive olarak tarar ve tüm.gitignoredosyalarını bulur. - Adım 1 – Kategori seçimi:
inquirertabanlı interaktif arayüz, projende hangi alanların kullanıldığını sorar:- Frontend, Backend, Mobile, DevOps & Cloud, IDE & Editor, Database, Game & 3D, Data & Science, Other.
- Adım 2 – Teknoloji seçimi: Seçtiğin kategoriler altında, kullandığın spesifik teknoloji ve araçları işaretlersin.
- İşleme:
- İlgili tüm şablonlar okunur
- Tek bir string halinde birleştirilir
- Aynı satırlar tekilleştirilir, boşluklar normalize edilir
- Zorunlu güvenlik kuralları eklenir
- Çıktı: Sonuç, çalıştığın klasörde tek bir
.gitignoredosyasına yazılır. - Çakışma yönetimi:
- Klasörde zaten
.gitignorevarsa,gi-allsorar:- Merge: Mevcut kuralları koru,
gi-allkurallarını üstüne ekle ve tekilleştir. - Overwrite: Var olan
.gitignore’u tamamengi-allçıktısı ile değiştir. - Cancel: Hiçbir değişiklik yapma.
- Merge: Mevcut kuralları koru,
- Klasörde zaten
📦 Kurulum
Hiç kurulum yapmadan, tek komutla kullanabilirsin:
# npm
npx gi-all
# yarn
yarn dlx gi-all
# pnpm
pnpm dlx gi-all
# bun
bunx gi-allGlobal kurmak istersen:
# npm
npm install -g gi-all
# yarn
yarn global add gi-all
# pnpm
pnpm install -g gi-all
# bun
bun add -g gi-allSonra sadece:
gi-all🧪 Kullanım: Saniyeler İçinde Mükemmel .gitignore
Projeni aç:
gi-allSonrasında:
- Kategori seç (Frontend, Backend, Mobile, DevOps & Cloud, IDE & Editor, Database, Game & 3D, Data & Science, Other)
- Teknoloji seç (React, Next.js, NestJS, Docker, VS Code, vb.)
gi-all:
- İlgili
templates/dosyalarını okur - Kuralları merge eder ve tekilleştirir
- Zorunlu güvenlik kurallarını ekler
- Çıktıyı bulunduğun klasördeki
.gitignoredosyasına yazar
.gitignore zaten varsa:
- Merge – mevcut kuralları korur,
gi-allkurallarıyla zenginleştirir - Overwrite –
.gitignore’u tamamengi-allçıktısı ile değiştirir - Cancel – hiçbir şey yapmaz
🧱 Mimari Genel Bakış
src/core/templateLoader.jstemplates/klasörünü recursive olarak tarar- Her
.gitignoredosyasını indeksler (hiçbiri unutulmaz) - Dosya adına göre kategori atar (Frontend, Backend, Mobile, vb.)
- CLI için temiz bir API sunar
src/core/merger.js- Birden fazla şablonun içeriğini birleştirir
- Duplicate satırları ve gereksiz boşlukları temizler
- Zorunlu güvenlik kurallarını ekler
- Mevcut
.gitignoreile merge etmek için yardımcı fonksiyon sağlar
src/cli.js- Kullanıcıya gösterilen CLI entry point
inquirerile iki adımlı arayüz (kategori → teknoloji)- Çakışma durumlarında (Merge / Overwrite / Cancel) kontrollü davranır
- Son
.gitignoredosyasını yazar
🤝 Katkı
gi-all, topluluk tarafından beslenen bir .gitignore bilgi bankası olarak tasarlandı.
📚 Wiki: https://github.com/qafaraz/gi-all/wiki
- Yeni bir framework, IDE veya araç için destek eklemek mi istiyorsun?
- Popüler bir stack için daha iyi ignore kuralları mı biliyorsun?
PR açmak için harika bir zaman.
Yeni şablon eklemek
- Reponun bir fork’unu al
templates/altında yeni bir.gitignoredosyası oluştur- Örnek:
templates/flutter.gitignore,templates/unity.gitignore,templates/devops/docker.gitignore, vb.
- Örnek:
- O teknoloji için odaklı, kaliteli kurallar yaz
- Kısa açıklamalı bir pull request aç
CLI, templates/ klasörünü otomatik taradığı için yeni dosyan anında keşfedilir; src/ tarafında dəyişiklik yapmana gerek kalmaz.
📜 Lisans
MIT — açık kaynak topluluğu için Qafar tarafından geliştirildi.
