Empujando el proyecto Django de virtualenv a github

Estoy trabajando en virtualenv en un pequeño proyecto de Django que necesita ser compartido en github y luego clonado e instalado en un server Apache desde allí. Nunca antes había usado virtualenv junto con github. Por lo general, configuraba el repository de git local en el mismo nivel que el file manage.py. Sin embargo, hay varios directorys virtualenv que realmente no quiero (bin, lib, include, etc.) en ese nivel junto con mis aplicaciones necesarias y directorys de templates, etc.

Entonces, ¿cuál es la manera de crear un repository github en este caso? ¿Hay alguna manera de ser selectivo y filtrar las cosas virtualenv?

Esta es la estructura de directorys que sigo

/path/to/application/ |-- project | |-- projectname | | |-- __init__.py | | |-- local_settings.py | | |-- settings.py | | |-- urls.py | | `-- wsgi.py | |-- appone | | |-- admin.py | | |-- __init__.py | | |-- models.py | | |-- tests.py | | `-- views.py | `-- manage.py `-- venv |-- bin |-- include |-- lib `-- local 

Puedes crear fácilmente un proyecto Django dentro de un directory llamado project como este –

 $ django-admin.py startproject projectname project 

E inicie virtualenv dentro de un directory llamado venv como este –

 $ virtualenv venv 

Entonces puedes seguir adelante e ingresar git init dentro /project . Esto mantiene el virtualenv fuera del scope de su repository de git.

De lo contrario, si desea mantener su estructura actual, puede crear un file .gitignore y mencionar bin , lib , include etc. allí.

Cuando se trabaja con un entorno virtual, la práctica común es include la carpeta del entorno virtual en su file .gitignore . Más sobre cómo usar esta function de git aquí .

TL; DR: todo lo que pones en tu file .gitignore será ignorado por git. Dicho file ( .gitignore ) reside en el mismo directory que su repository de git.

Ejemplo de dicho file que ignora cualquier código fuente comstackdo (.pyc), files comprimidos (.zip, .rar, .tar), loggings y bases de datos (.db, .log, .sql) y files de entorno virtual (Scripts, Lib , Incluir) y carpetas enteras (env – nombre de mi carpeta virtualenv):

 # Compiled source # ################### *.com *.class *.dll *.exe *.o *.so *.pyc # Packages # ############ *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip # Logs and databases # ###################### *.db *.log *.sql *.sqlite # virtualenv generated files # ############################## Scripts Lib Include # virtualenv folders # ###################### env 

Lea los documentos de Github al ignorar files ; básicamente equivale a poner un file .gitignore en su proyecto, con una list de patrones que coinciden con los files que no desea que administre Git.