J'essaie de collecter certains de mes paramètres par défaut et une chose que j'ai réalisée est que je n'ai pas de norme pour les fichiers .gitignore. Il y a un bon fil montrant un bon .gitignore pour les projets Visual Studio , mais je ne vois pas beaucoup de recommandations pour Python et les outils associés (PyGTK, Django).
Jusqu'à présent, j'ai ...
*.pyc
*.pyo
... pour les objets compilés et ...
build/
dist/
... pour la sortie setuptools.
Quelles sont les meilleures pratiques pour les fichiers .gitignore et où puis-je aller pour en savoir plus sur ces meilleures pratiques?
Lors de l'utilisation de buildout j'ai suivi dans .gitignore
(avec *.pyo
et *.pyc
):
.installed.cfg
bin
develop-eggs
dist
downloads
eggs
parts
src/*.Egg-info
lib
lib64
Merci à Jacob Kaplan-Moss
Aussi, j'ai tendance à mettre .svn
dans la mesure où nous utilisons plusieurs SCM-s où je travaille.
Github a un excellent passe-partout .gitignore
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
bin/
build/
develop-eggs/
dist/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.Egg-info/
.installed.cfg
*.Egg
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
.tox/
.coverage
.cache
nosetests.xml
coverage.xml
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Rope
.ropeproject
# Django stuff:
*.log
*.pot
# Sphinx documentation
docs/_build/
local_settings.py , pour Django projets.
* ~ pour tous les projets.
Une question est si vous voulez également utiliser git pour l'épuisement de vos projets. Si tel est le cas, vous voudrez probablement exclure votre fichier sqlite local du référentiel, il en va probablement de même pour les téléchargements de fichiers (principalement dans votre dossier multimédia). (Je parle de Django maintenant, puisque votre question porte également la mention Django.)
Couvre la plupart des choses générales -
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.Egg-info/
.installed.cfg
*.Egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
Référence: python .gitignore
Voici d'autres fichiers pouvant être laissés par setuptools:
MANIFEST
*.Egg-info