Python genera molti file che non dovrebbero essere committati: bytecode compilato (__pycache__, .pyc), directory virtual environment, pacchetti di distribuzione, report di coverage e impostazioni specifiche dell'IDE.
Questo template usa il gitignore ufficiale GitHub per Python combinato con regole VirtualEnv e pattern comuni per IDE/OS. Funziona con pip, poetry, pipenv, conda, pytest, mypy e tutti i principali workflow Python.
Come usare
1. Rivedi i template preselezionati qui sotto
2. Aggiungi o rimuovi template per adattarli al tuo progetto (es. aggiungi Django, Flask)
3. Clicca "Copia" o "Download" per ottenere il file
4. Posizionalo nella directory root del progetto
Domande frequenti
Devo committare il virtual environment?
Mai. I virtual environment (venv, .venv, env) possono essere enormi e sono specifici della macchina. Aggiungili al .gitignore e usa requirements.txt o pyproject.toml per ricrearli.
Devo ignorare __pycache__ e i file .pyc?
Sรฌ. Questi sono file bytecode compilati generati automaticamente da Python. Sono specifici della macchina e verranno rigenerati quando Python esegue il tuo codice.
Devo committare i checkpoint dei notebook Jupyter?
No. La directory .ipynb_checkpoints รจ auto-generata da Jupyter e deve essere ignorata. I notebook stessi (file .ipynb) invece vanno committati.
Cosa ignorare per Django?
Oltre alle regole Python standard: db.sqlite3 (database locale), media/ (file caricati dagli utenti), staticfiles/ (file statici collezionati), *.log, e local_settings.py. Le migrazioni invece vanno committate.
Come gestire requirements.txt vs pyproject.toml?
Entrambi vanno committati. Il requirements.txt o pyproject.toml definisce le dipendenze del progetto e permette di ricreare il virtual environment. Alcuni team committano anche requirements-lock.txt per versioni esatte.
Devo ignorare i file .egg-info?
Sรฌ. Le directory *.egg-info/ e dist/ sono generate durante il packaging e la distribuzione. Non devono essere nel controllo di versione perchรฉ possono essere rigenerate con 'python setup.py' o 'pip install -e .'.
Come ignorare file di coverage e test?
Aggiungi: .coverage, htmlcov/, .pytest_cache/, .tox/, .nox/. Questi sono generati dai tool di testing e non devono essere committati.