Cómo configurar bien el archivo .gitignore para las aplicaciones Symfony2
Git
es la herramienta recomendada para gestionar el código fuente de las
aplicaciones Symfony2. Por eso resulta esencial configurar bien el archivo
.gitignore
, que define los archivos y directorios que no se suben al
repositorio.
Si por error has subido al repositorio algún archivo o directorio que no debería estar, puedes eliminarlo con el siguiente comando, que mantiene la copia local en tu ordenador de ese archivo o directorio:
git rm --cached nombre-del-archivo-o-directorio
Configuración recomendada
Copia y pega la siguiente configuración en el archivo .gitignore
de tu
proyecto:
# -- Symfony2 ----------------------------------------- app/bootstrap.php.cache app/bootstrap_cache.php.cache app/config/parameters.ini app/config/parameters.yml app/cache/* app/logs/* vendor/* web/bundles/* web/css/* web/js/* web/uploads/* # -- Composer ----------------------------------------- composer.phar # -- PHPUnit ------------------------------------------ app/phpunit.xml # -- Editores ----------------------------------------- # vim .*.sw[a-z] *.un~ Session.vim .netrwhist # eclipse *.pydevproject .project .metadata bin/** tmp/** tmp/**/* *.tmp *.bak *.swp *~.nib local.properties .classpath .settings/ .loadpath .externalToolBuilders/ *.launch .buildpath # phpstorm .idea/ # textmate *.tmproj *.tmproject tmtags # sublimetext /*.sublime-project *.sublime-workspace # netbeans nbproject/private/ build/ nbbuild/ dist/ nbdist/ nbactions.xml nb-configuration.xml # -- Sistemas Operativos ------------------------------ # Windows Thumbs.db ehthumbs.db Desktop.ini $RECYCLE.BIN/ # Linux .* !.gitignore !.htaccess *~ # Mac OS X .DS_Store .AppleDouble .LSOverride Icon ._* .Spotlight-V100 .Trashes
Explicación
Symfony2
app/bootstrap.php.cache app/bootstrap_cache.php.cache # sólo en Symfony 2.0
Archivos que genera Symfony2 para mejorar el rendimiento. Contienen todo el código de las clases que más se ejecutan en las aplicaciones Symfony2.
app/config/parameters.ini # Symfony 2.0 app/config/parameters.yml # Symfony 2.1
Archivos de configuración principales de Symfony2. Estos archivos pueden
contener contraseñas y otros datos sensibles, por lo que nunca se suben al
repositorio. En su lugar, crea un archivo llamado
app/config/parameters.ini.dist
(en Symfony 2.0) o
app/config/parameters.yml.dist
(en Symfony 2.1) que explique cómo debe
crearlo cada usuario que utilice la aplicación.
app/cache/*
Directorio donde se generan todos los archivos temporales que mejoran el rendimiento de la aplicación. Entre otros, contiene todas las plantillas Twig compiladas a PHP, toda la información procesada de las anotaciones del código, todas las rutas compiladas a PHP, información del profiler, etc.
app/logs/*
Directorio donde se generan los archivos de log en los que Symfony2 escribe
todos sus mensajes de depuración. Normalmente sólo hay un archivo de log por
cada entorno de ejecución. Si no lo borras de vez en cuando, el archivo
app/logs/dev.log
puede llegar a ser gigantesco.
vendor/*
Directorio con todos los componentes y librerías de Symfony2. Estas
dependencias nunca se suben al repositorio. Cada usuario que se baje esta
aplicación, debe instalar los vendors con el comando php bin/vendors install
.
web/bundles/* web/css/* web/js/*
Directorios donde Symfony2 vuelca todos los archivos web públicos (CSS y
JavaScript) Los archivos CSS y JavaScript se regeneran en el servidor de
producción con los commandos assets:install
o assetic:dump
.
web/uploads/*
Directorio donde se guardan los archivos subidos por los usuarios (imágenes, documentos, etc.).
Composer
composer.phar
Si eres de los que instalan Composer para cada aplicación Symfony2, este es el
archivo creado por Composer
en el directorio raíz del proyecto. Seguramente
en el servidor de producción tendrás instalado Composer de forma global, tal y
como se explica en la guía de instalación de Git por lo que es una buena idea excluir este archivo.
PHPUnit
app/phpunit.xml
Symfony2 incluye un archivo de configuración genérico para PHPUnit llamado
app/phpunit.xml.dist
. Normalmente cada programador crea una copia llamada
app/phpunit.xml
donde modifica las opciones de configuración para adaptarlas
a sus necesidades particulares. Lo normal es no subir este archivo de
configuración propio para que no afecte a la ejecución de los tests del resto
de programadores del equipo de desarrollo.
Editores
Esta sección muestra los archivos más habituales creados los IDE y editores más populares para crear aplicaciones Symfony2 (vim, Eclipse, PHPStorm, TextMate, SublimeText y NetBeans).
Si utilizas un editor diferente, busca su configuración recomendada en los ejemplos del proyecto gitignore.
Sistemas Operativos
Esta sección excluye los diferentes archivos temporales creados por los tres sistemas operativos más populares. Recuerda que es posible que tu aplicación se ejecute en diferentes sistemas operativos, así que no te quedes sólo con la configuración del sistema operativo que utilices en local.
Configuración global
La última parte del archivo .gitignore
mostrado anteriormente incluye los
archivos generados por los sistemas operativos, los IDE y los editores. Este
tipo de archivos no sólo se generan en los proyectos Symfony2, sino en
cualquier otro proyecto de software.
Por ese motivo, puede resultar interesante crear un archivo .gitignore
global, que se aplique a todos los proyectos de tu ordenador. Para ello, crea
un archivo llamado .gitignore_global
en el directorio raíz de tu usuario:
$ touch ~/.gitignore_global
Después, añade en su interior la configuración referida a los editores y a los sistemas operativos:
# -- Editores ----------------------------------------- # vim .*.sw[a-z] *.un~ Session.vim .netrwhist # eclipse *.pydevproject .project .metadata bin/** tmp/** tmp/**/* *.tmp *.bak *.swp *~.nib local.properties .classpath .settings/ .loadpath .externalToolBuilders/ *.launch .buildpath # phpstorm .idea/ # textmate *.tmproj *.tmproject tmtags # sublimetext /*.sublime-project *.sublime-workspace # netbeans nbproject/private/ build/ nbbuild/ dist/ nbdist/ nbactions.xml nb-configuration.xml # -- Sistemas Operativos ------------------------------ # Windows Thumbs.db ehthumbs.db Desktop.ini $RECYCLE.BIN/ # Linux .* !.gitignore !.htaccess *~ # Mac OS X .DS_Store .AppleDouble .LSOverride Icon ._* .Spotlight-V100 .Trashes
Por último, ejecuta el siguiente comando para modificar la configuración de Git
e indicarle que debe tener en cuenta el nuevo archivo .gitignore_global
:
$ git config --global core.excludesfile ~/.gitignore_global
Otros recursos
El proyecto gitignore de GitHub contiene
muchos ejemplos de archivos .gitignore
para diferentes tecnologías y
lenguajes de programación.
¿Has visto algún error?
Avísanos en [email protected] para que podamos corregirlo. Gracias.
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.