Generi un modello .gitignore per il Suo ambiente di sviluppo
Crei un .gitignore pratico senza cercare più modelli né conservare regole ripetute.
Esegui gratis nel browser
Selezioni le tecnologie e i sistemi operativi usati dal Suo repository: il generatore unirà i relativi pattern standard in un unico file deterministico. Gli ambienti ripetuti e le regole sovrapposte vengono rimossi mantenendo il primo ordine utile. Un nome sconosciuto produce un errore chiaro anziché un modello incompleto, rendendo il risultato adatto a script e nuovi progetti.
Selezioni ogni ambiente che crea artefatti locali
Cominci dai linguaggi, runtime, editor e sistemi operativi che intervengono realmente nel repository. Un progetto Node sviluppato su macOS può richiedere entrambi gli insiemi, mentre un backend misto può combinare node, python e java. Inserire ogni ambiente pertinente è importante perché gli artefatti non provengono soltanto dal linguaggio principale: i gestori di pacchetti creano cache, gli strumenti di test generano rapporti di copertura, gli editor salvano metadati e i sistemi desktop aggiungono registri del filesystem. Il generatore non distingue maiuscole e minuscole e rimuove gli spazi esterni, quindi Node e node selezionano la stessa voce. Ripetere un ambiente non ripete le sue regole. Un nome sconosciuto viene rifiutato esplicitamente, evitando che un errore di battitura produca un file apparentemente completo ma privo di un’intera catena di strumenti. Limiti la selezione agli strumenti realmente usati dai collaboratori: ecosistemi estranei possono nascondere file che sarebbe opportuno versionare.
Comprenda come avvengono unione e deduplicazione
I cataloghi selezionati vengono elaborati nell’ordine fornito. In ogni catalogo, i pattern consolidati mantengono l’ordine pubblicato. Quando ricompare la stessa riga esatta, resta soltanto la prima occorrenza. Le directory di compilazione o copertura, per esempio, sono comuni a più ecosistemi, ma il file generato contiene ogni regola coincidente una sola volta. Questa deduplicazione esatta è volutamente prudente: due pattern simili possono avere significati Git diversi, soprattutto quando uno è ancorato, usa un carattere jolly o ripristina un file con un punto esclamativo. Il generatore pertanto non riscrive, amplia, ordina o semplifica le regole. Questa scelta mantiene il comportamento prevedibile e non cambia il significato di un modello standard solo per accorciarlo. La risposta comprende l’elenco normalizzato degli ambienti, il numero finale di pattern unici e il testo completo con una nuova riga conclusiva, così Lei può esaminarlo, salvarlo direttamente o confrontarlo in test automatizzati.
Controlli il risultato prima di adottarlo
Consideri il .gitignore generato una base affidabile, non un sostituto della conoscenza del repository. Legga il risultato prima del commit, soprattutto per lockfile, directory di compilazione, file di ambiente, impostazioni dell’editor e codice di terze parti. Alcuni team versionano intenzionalmente file che altri progetti escludono; le applicazioni Rust spesso registrano Cargo.lock, mentre le librerie possono seguire politiche differenti. Aggiunga le regole specifiche del progetto dopo il blocco generato e rimuova quelle standard incompatibili con la Sua politica di rilascio o riproducibilità. Se Git traccia già un file, inserirlo nel .gitignore non lo elimina dall’indice né dalla cronologia; gestisca tale migrazione separatamente. Poiché la generazione è deterministica e non usa la rete, la stessa lista ordinata restituisce sempre lo stesso testo. Può quindi usarla negli script di scaffolding, conservare gli input scelti e controllare le differenze quando il catalogo cambia.
Casi d'uso
Avviare un repository poliglotta
Combini in un passaggio le regole di frontend, backend, editor e sistema operativo di sviluppo.
Automatizzare i nuovi progetti
Generi un .gitignore stabile da una lista dichiarata ogni volta che crea un servizio o pacchetto.
Ripulire un modello copiato
Sostituisca frammenti sovrapposti con una lista deterministica che contiene ogni pattern esatto una volta.
Domande frequenti
Quanto costa?
Il prezzo dell’API è $0.002 per richiesta; la versione browser può essere eseguita localmente in questa pagina.
Quali nomi sono riconosciuti?
Il catalogo include node, python, java, macos, windows, linux, vscode, jetbrains, go, rust, ruby, php e dotnet.
I nomi distinguono maiuscole e minuscole?
No. Gli spazi esterni vengono rimossi e i nomi sono confrontati in minuscolo.
Come vengono gestiti i pattern duplicati?
Le righe esattamente uguali vengono rimosse conservando la prima occorrenza e l’ordine richiesto.
Cosa accade con un nome sconosciuto?
La richiesta fallisce con un errore che indica il valore sconosciuto; non viene restituito un modello parziale.
Posso usare il risultato senza controllarlo?
Lo controlli prima, poiché le politiche variano per lockfile, dipendenze incluse, build ed editor.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/gitignore-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stacks":["node","python","macos"]}'const res = await fetch("https://api.kit.forhosting.com/web/gitignore-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stacks": [
"node",
"python",
"macos"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/gitignore-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stacks": [
"node",
"python",
"macos"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/gitignore-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stacks":["node","python","macos"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stacks":["node","python","macos"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/gitignore-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"stacks": [
"node",
"python",
"macos"
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.gitignore_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |