Configurar un proyecto con Git

De WikiSalud
(Diferencias entre revisiones)
Saltar a: navegación, buscar
(Creando proyecto Netbeans)
(Modificaciones para hacer funcionar un proyecto Symfony)
 
(No se muestran 27 ediciones intermedias realizadas por 5 usuarios)

Última revisión de 16:23 23 sep 2014

Contenido

[editar] Generar clave id_rsa.pub

Para conectarse al servidor Git del MINSAL se realizará por conexión ssh. Lo primero que debe realizarse es la comprobación de la llave id_rsa.pub, como usuario normal ejecutar la siguiente sentencia.

ls .ssh

Pueden resultar dos opciones:

  • Que no encuentre la carpeta y genere el siguiente mensaje:
ls ./ssh
  • Que muestre el contenido de la carpeta, lo que indica que no debe de realizar los siguientes pasos.

La llave id_rsa.pub es el identificador de la clave RSA pública que permite conectarse vía shh sin escribir contraseña mientras el equipo que permita la conexión se le halla establecido esta clave pública.

Para poder generar tanto la clave pública y privada se debe de ejecutar en consola como usuario normal

ssh-keygen -t rsa

Lo primero que pregunta es el lugar en donde se quieren crear estas llaves. Por defecto se colocará en el home del usuario que esta generando dichas llaves. Como se muestra en la siguiente figura:

ruta del archivo

Luego pedirá que se ingrese una contraseña para la conexión; en este caso no le daremos contraseña así que presionamos enter tanto para la petición como para la confirmación.

Contraseña ssh

A continuación se realizará la revisión del archivo id_rsa.pub, para ello ejecutar la siguiente sentencia en la consola:

cat .ssh/id_rsa.pub

Deberá aparecer algo similiar a la imagen que se presenta a continuación:

id_rsa.pub

Y deberá aparecer una secuencia de letras, numeros y simbolos parecidos a los que se muestran en la imagen anterior. Ahora se debe cambiar el nombre de la maquina y del usuario que aparecen en este archivo, que es el que se representa Usuario@Maquina; cabiar dicho nombre por un correo.

Luego de guardar los cambios al archivo, enviar este archivo al administrador de los servidores para que este pueda agregar nuestra llave y nos permita escribir en dicho servidor.

[editar] Instalación de Git

Verificar que se tienen los repositorios y el sistema actualizado. Luego, como usuario root ejecutar la siguiente instrucción.

aptitude install git kdiff3 qgit

[editar] Configuración de Git

Para configurar el usuario git, como usuario normal escribir en consola:

git config --global user.name "Nombre de la persona"
git config --global user.email correoElectronico
git config --global color.ui true
git config --global merge.tool kdiff3
git config --global core.editor vim # Sólo en el caso que se desee que VIM sea el editor predeterminado.

Para estar seguro de lo que se agrego ejecutar:

git config --list

[editar] Clonar proyecto vacío para crear la confirmación inicial

  • El administrador del proyecto debe de haber creado previamente un proyecto git vacío sin ningún archivo; ahora se debe clonar dicho proyecto en el directorio en el que se quiere guardar este proyecto. Ejecutar desde consola:
git clone git@git.salud.gob.sv:nombreProyecto.git
  • Crear el .gitignore para excluir archivos como la conexión a la base de datos, cache, logs, por mencionar algunos. Si es un proyecto Symfony se puede utilizar el siguiente archivo .gitignore:
# Archivos de respaldo
*~
.*.kate-swp #kate
.*.swp #VIM
 
# Archivo de configuración de la personalización del comportamiento del directorio para KDE
.directory
 
# Bootstrap
app/bootstrap*
 
# Directorios de Symfony
vendor/*
*/logs/*
*/cache/*
web/uploads/*
web/bundles/*
 
# Archivos de configuración
app/config/parameters.ini
app/config/parameters.yml
 
#Carpeta de configuración del proyecto de NetBeans
nbproject/
  • Crear el archivo README para explicar que fue lo que se ignoró y algunas recomendaciones de ciertos archivos que han sido ignorados. Además, este archivo debe tener toda la información del proyecto y pasos necesarios para ejecutar el proyecto correctamente; por tanto, debe comenzar con una descripción sustancial del sistema/proyecto, los paquetes que se deben instalar para su correcto funcionamiento, las configuraciones que se deben realizar, etc.
  • Ejecutar el siguiente comando:
git status

Debe mostrar un texto como se muestra a continuación, donde especifica que esta en la rama master y que es la confirmación inicial.

git branch
  • Copiar todos los archivos relacionados al proyecto que se pretende subir al servidor git.
  • Dar seguimiento a todos los archivos copiados dentro de la carpeta; para ello ejecutar
git add --all
  • Para la confirmación inicial ejecutar lo siguiente:
git commit -a

Lo cual abrirá el editor configurado, para este caso, vi/vim. Si no se ha configurado un editor para Git, se utilizará el editor predeterminado del sistema. En algunos casos será nano.

En el mensaje de confirmación colocar una breve descripción del sistema, las características que tiene y cualquier otra información adicional que pueda ser útil.

  • Para subir los cambios al servidor se necesita saber el remoto autorizado para realizar esta acción; para saber eso, ejecutar:
git remote -v
gir remote -v

Al observar las líneas que se encuentran entre el recuadro rojo, se puede observar que el nombre del remoto es origin y nos indica que para modificar el servidor se puede hacer mediante el fetch o el push.

  • Para subir los cambios al servidor se hará en la rama master, ejecutando la siguiente sentencia:
git push origin master
  • Al revisar el servidor git deberá aparecer el proyecto git con su primera confirmación en la rama master.

[editar] Clonar proyecto Symfony configurado previamente

Para clonar el proyecto capacitacion/symfony.git utilizado en las capacitaciones, colocarse en el directorio en donde se quiere clonar el proyecto.

Nota: Para seguir con el ejemplo de la capacitación colocarse en NetBeansProjects/

Ejecutar la siguiente sentencia:

git clone git@git.salud.gob.sv:capacitaciones/symfony.git

Si es la primera vez que se clona un proyecto desde el servidor Git, aparecerá los siguiente:

Clonar proyecto

En donde pregunta que si se esta seguro de realizar esa conexión via ssh. Responder escribiendo yes, luego de esto descargará el servidor tal y como se encuentra en el momento de la clonación.

Clonar proyecto

[editar] Modificaciones para hacer funcionar un proyecto Symfony

Verificar si se tiene el archivo composer.phar; si no se tiene, se deben realizar los siguientes pasos:

ls symfony/
  • Como usuario root instalar el paquete curl.
aptitude install curl
  • Si se tiene Debian Squeeze, es necesario realizar la siguiente configuración de suhosin. Como usuario root editar el archivo /etc/php5/cli/conf.d/suhosin.ini, cambiando:
;suhosin.executor.include.whitelist =

Por:

suhosin.executor.include.whitelist = phar
  • Como usuario normal, se creará una nueva rama y se activará para trabajar en ella. Ejecutar:
git checkout -b nombreRama
git checkout
  • Para asegurarse que se esta en la rama correcta ejecutar:
git branch
git branch
Lo que se encuentra en color verde con un * es la rama en la que se está trabajando
  • Como usuario normal ejecutar lo siguiente:
curl -s https://getcomposer.org/installer | php

La sentencia anterior lo que hace es descargar el composer.phar, luego de ejecutar la sentencia deberá generar el archivo:

composer.phar
  • Ahora se procede a crear el parameters.yml en el directorio app/config; ya que este archivo al haber sido ignorado no es copiado con el clonar el proyecto. La estructura del archivo parameters.yml es la siguiente:
parameters:
    database_driver: pdo_pgsql
    database_host: nombreHost
    database_port: ''
    database_name: nombreBase
    database_user: usuarioBase
    database_password: contraseñaBase
    mailer_transport: smtp
    mailer_host: localhost
    mailer_user: null
    mailer_password: null
    locale: en
    secret: Esta-clave-debe-generarse-como-se-describe-a-continuación
    database_path: null
  • Para generar una cadena de caracteres para usar como secret ejecutar lo siguiente como usuario normal:
mktemp |sha1sum

Aparecerá una cadena como la que se muestra a continuación:

21d0fdeb3ba911c8af21ebef790241c5664347c1  -

Nótese que al final hay un espacio y un guión, esto no se usará como parte del secret. Por tanto, el secret sería 21d0fdeb3ba911c8af21ebef790241c5664347c1

  • Actualizar el kernel de Symfony para que finalmente se pueda acceder al sitio. Ejecutar:
php composer.phar install
php composer.phar install

Al terminar de descargar todos los archivos necesarios, deberá aparecer en la consola algo similar a la imagen que se muestra a continuación:

php composer.phar install
.
  • Aplicar las acl al directorio cache y logs:
setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache/ app/logs/
setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache/ app/logs/
(Véase: Configuración de ACL)
  • Probar symfony.localhost/app_dev.php
Nota: para realizar la prueba con la URL, tener en cuenta que el virtual host este en la IP 127.0.0.4 sino se  debe cambiar dicha dirección en el archivo app_dev.php
symfony.localhost app/dev.php
.
  • En caso que se tenga el archivo composer.phar no se debe ejecutar la sentencia:
curl -s https://getcomposer.org/installer | php

[editar] Confirmación inicial en la nueva rama

  • Luego de hacer todos los pasos del ítem anterior, se procede a subir los cambios de la nueva rama creada. Para ello se debe estar seguro que se encuentra en la nueva rama así que ejecutar:
git branch
git branch
  • Dar seguimiento a todos los archivos que se han creado y realizar la confirmación inicial en la rama. Se debe agregar un mensaje descriptivo de la utilidad que tendrá la rama, por ejemplo, si es una rama de desarrollo, la rama de trabajo de un desarrollador, etc. Esto se hace con las sentencias:
git add --all
git commit -a
Seguimiento y confirmación de archivos
  • Asegurarse que el nombre del remoto que se tiene configurado para el proyecto, con la sentencia:
git remote -v
  • Subir los archivos al servidor con la siguiente sentencia:
git push origin prueba
Verificar remoto y subir archivos

[editar] Creando proyecto NetBeans

Al crear el archivo .gitignore de un proyecto Symfony con el IDE de desarrollo NetBeans se deben ignorar los siguientes archivos:

# Archivos de respaldo
*~
.*.kate-swp #kate
.*.swp #VIM
 
# Archivo de configuración de la personalización del comportamiento del directorio para KDE
.directory
 
# Bootstrap
app/bootstrap*
 
# Directorios de Symfony
vendor/*
*/logs/*
*/cache/*
web/uploads/*
web/bundles/*
 
# Archivos de configuración
app/config/parameters.ini
app/config/parameters.yml
 
# Carpeta nbproject de NetBeans
nbproject/

Como se observa en las líneas anterior se ignora el directorio nbproject/, entonces para que NetBeans reconozca este proyecto como un proyecto NetBeans se procede a crear un nuevo proyecto pero con la opción PHP Aplication with Existing Source .

Crear proyecto con una fuente existente

Luego seleccionar el origen del proyecto presionando el botón Browse..

Buscar el proyecto clonado

Al seleccionar el proyecto aparecerá la ruta en la siguiente ventana:

Proyecto seleccionado

En la siguiente ventana configurar la URL de prueba, en este caso es http://symfony.localhost/app_dev.php

Proyecto seleccionado

Al presionar Finish, se creará el proyecto.

Proyecto creado

Como se puede observar, justo abajo del nombre del proyecto aparece un cilindro azul; este cilindro indica que se han hecho modificaciones al proyecto git. Se deben tomar las siguientes consideraciones a la hora de realizar cambios al proyecto:

  • Todos los archivos que aparezcan en color VERDE son archivos que han sigo agregados sin haberlos confirmado.
  • Todos los archivos que aparezcan en color AZUL son archivos que fueron creados desde el proyecto pero su estructura ha cambiado.
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas