2010-09-15 33 views
112

Estoy tratando de recopilar algunas de mis configuraciones predeterminadas, y una cosa que me di cuenta de que no tengo un estándar para los archivos .gitignore. Hay un gran hilo que muestra un good .gitignore for Visual Studio projects, pero no veo muchas recomendaciones para Python y herramientas relacionadas (PyGTK, Django).¿Archivo .gitignore recomendado para proyectos de Python?

Hasta el momento, no tengo ...

*.pyc 
*.pyo 

... para los objetos compilados y ...

build/ 
dist/ 

... para la salida setuptools.

¿Alguna más recomendación para mí?

+0

Gracias por las respuestas grande, todo. + Puntos para todos! – ewall

+10

Este proyecto https://github.com/github/gitignore fue configurado para responder exactamente esta pregunta. – MatrixFrog

+1

.. Solo no olvides agregar https://github.com/github/gitignore/blob/master/Python.gitignore ya que también es un proyecto de Python. –

Respuesta

28

Al utilizar buildout He siguiente en .gitignore (junto con *.pyo y *.pyc):

.installed.cfg 
bin 
develop-eggs 
dist 
downloads 
eggs 
parts 
src/*.egg-info 
lib 
lib64 

Gracias a Jacob Kaplan-Moss

También tiendo a poner .svn ya que utilizamos varios SCM-s donde trabajo

+21

¿Mantener un repositorio svn en el mismo árbol que su repositorio git? ¿Qué tipo de monstruo haría tal cosa? – Daenyth

+0

@Daenyth * risita *, bueno, en realidad no, pero tiendo a encontrar algunos directorios '.svn' que quedan por ahí si obtengo un componente de otra fuente (especialmente en componentes más antiguos) y también soy bastante flojo, así que a veces copio compras en lugar de exportar cosas desde SVN.Una vez incluso vi a un chico cometiendo restos de .svn dirs en GIT. Puede encontrarse con todo tipo de cosas extrañas cuando trabaja con personas tontas. –

+0

Parece que su equipo necesita ser educado un poco mejor sobre cómo usar sus herramientas ... – Daenyth

6

Una pregunta es si también desea utilizar git para el desarrollo de sus proyectos. Si es así, probablemente desee excluir su archivo sqlite local del repositorio, lo mismo probablemente se aplique a las cargas de archivos (principalmente en su carpeta multimedia). (Estoy hablando de django ahora, ya que su pregunta también está etiquetada con django)

+0

Entendido. Como Django no impone mucho de un nombre de archivo y una estructura de directorios, es difícil especificarlos de antemano. Pero al menos puedo tomar nota de ello, así que recuerdo cuando estoy creando un nuevo proyecto. – ewall

+0

Bueno, supongo que al menos deberías hacer que sea común tener todos tus archivos cargados por el usuario en UNA carpeta en tu directorio multimedia, por ej. 'media/uploads', para que pueda 'ignorarlos' con una regla ... –

15

local_settings.py, para proyectos django.

* ~ para todos los proyectos.

+0

Eso tiene sentido. Me gusta este método de separar la configuración general de la específica/local/privada. – ewall

+0

¿Cómo funciona esto? Es decir, ¿cómo sabe Django o Python cuándo el entorno es local y cuándo es la producción? – MadPhysicist

4

Éstos son algunos otros archivos que pueden ser abandonados por setuptools:

MANIFEST 
*.egg-info 
+0

Creo que podría dejar esto fuera de mi valor predeterminado, porque algunos de mis proyectos tienen distribuciones de herramientas de configuración que los necesitarían. Pero para plugins y tal, sí. – ewall

170

Github has a great boilerplate .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/ 
+1

¿por qué deberíamos ignorar los archivos * .mo? solamente por curiosidad. ¿Son esos archivos .po de gettext compilados en el servidor por separado? –

+2

Los archivos .mo son la versión legible por máquina (binaria) de los archivos .po y, como se sabe, es mucho mejor mantener los archivos binarios fuera de un repositorio versionado, cuando se puede (y se debe, ya que se incluyen ambos. po y .mo significa también mantener datos duplicados en el repositorio, que el VCS ni siquiera puede "aplastar") – dappiu

Cuestiones relacionadas