Como usar Git “Una guía muy sencilla” Parte II

  • Las ramas son utilizadas para desarrollar funcionalidades aisladas unas de otras. La rama master es la rama “por defecto” cuando creas un repositorio. Ejemplo crearemos una nueva rama llamada “modificacion” y cámbiate a ella usando git checkout -b modificacion, para volver a la rama principal git checkout master, si queremos borrar la rama git branch -d modificacion. La rama no estará disponible para los demás a menos que subas (push) la rama a tu repositorio remoto git push origin <branch>.
  • Para actualizar tu repositorio local al commit más nuevo, ejecutamos git pull en tu directorio de trabajo para bajar y fusionar los cambios remotos. Para fusionar otra rama a tu rama activa (por ejemplo master), utilizamos git merge <branch> en ambos casos git intentará fusionar automáticamente los cambios. Desafortunadamente, no siempre será posible y se podrán producir conflictos. Tú eres responsable de fusionar esos conflictos manualmente al editar los archivos mostrados por git. Después de modificarlos, necesitas marcarlos como fusionados con git add <filename>. Antes de fusionar los cambios, puedes revisarlos usando git diff <source_branch> <target_branch>
  • Se recomienda crear etiquetas para cada nueva versión publicada de un software. Este concepto no es nuevo, ya que estaba disponible en SVN. Donde se puede crear una nueva etiqueta llamada 1.0.0 ejecutando git tag 1.0.0 1b2e1d63ff 1b2e1d63ff se refiere a los 10 caracteres del commit id al cual quieres referirte con tu etiqueta. Puedes obtener el commit id con git log también puedes usar menos caracteres que el commit id, pero debe ser un valor único.
Anuncios
Publicado en Tutoriales | Etiquetado , ,

Como usar Git “Una guía muy sencilla”

GITGit es un sistema de control de versiones distribuido cuyo objetivo es el de permitir mantener una gran cantidad de código a una gran cantidad de programadores eficientemente. Hay dos características de Git que creo que ayudan a entender esta definición simplista.

La primera gran diferencia de Git con respecto a otros sistemas de control de versiones es la forma que tiene de manejar los cambios en los ficheros. Mientras que otros scv’s almacenan los archivos originales, conservando una lista de los cambios realizados a dichos archivos en cada versión, Git guarda una “foto” (snapshot) del estado de cada archivo en un momento concreto. Si uno de los archivos no ha cambiado no crea una nueva copia del mismo, simplemente crea una referencia al archivo original.

La segunda es la eficiencia. Git se basa en que cada programador almacena una copia completa del repositorio en su máquina de forma local, incluido el historial de cambios. Esto implica que muchas de las operaciones realizadas sobre el código fuente no tienen lugar en la red, permitiendo que la velocidad de proceso dependa únicamente en los recursos locales.

Algunos comando en Git

  • Crea un directorio nuevo, ábrelo y ejecuta git init para crear un nuevo repositorio de git.
  • Hacer checkout a un repositorio, primero creamos una copia local del repositorio ejecutando
    git clone /path/to/repository Si utilizas un servidor remoto, ejecuta git clone username@host:/path/to/repository
  • Tu repositorio local esta compuesto por tres “árboles” administrados por git. El primero es tu Directorio de trabajo que contiene los archivos, el segundo es el Index que actúa como una zona intermedia, y el último es el HEAD que apunta al último commit realizado.
  • Puedes registrar cambios (añadirlos al Index) usando git add <filename> git add . Este es el primer paso en el flujo de trabajo básico. Para hacer commit a estos cambios usa git commit -m "Commit message" Ahora el archivo esta incluído en el HEAD, pero aún no en tu repositorio remoto.
  • Tus cambios están ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio remoto ejecuta git push origin master Reemplaza master por la rama a la que quieres enviar tus cambios. Si no has clonado un repositorio ya existente y quieres conectar tu repositorio local a un repositorio remoto, usa git remote add origin <server> Ahora podrás subir tus cambios al repositorio remoto seleccionado.
Publicado en Tutoriales | Etiquetado , ,

Estructura de un proyecto en Laravel

Al crear un nuevo proyecto de Laravel se nos generará una estructura de carpetas y ficheros para organizar nuestro código. Es importante que conozcamos para que vale cada elemento y donde tenemos que colocar nuestro código. En este manual lo iremos viendo poco a poco, por lo que más adelante se volverán a explicar algunos de estos elementos más en detalle. Pero de momento vamos a explicar brevemente las carpetas que más utilizaremos y las que mejor tendremos que conocer:

  • app – Contiene el código principal de la aplicación. Esta carpeta a su vez está dividida en muchas subcarpetas que analizaremos en la siguiente sección.

  • config – Aquí se encuentran todos los archivos de configuración de la aplicación: base datos, cache, correos, sesiones o cualquier otra configuración general de la aplicación.

  • database – En esta carpeta se incluye todo lo relacionado con la definición de la base de datos de nuestro proyecto. Dentro de ella podemos encontrar a su vez tres carpetas: factores, migrations y seeds. En el capítulo sobre base de datos analizaremos mejor su contenido.

  • public – Es la única carpeta pública, la única que debería ser visible en nuestro servidor web. Todo las peticiones y solicitudes a la aplicación pasan por esta carpeta, ya que en ella se encuentra el index.php, este archivo es el que inicia todo el proceso de ejecución del framework. En este directorio también se alojan los archivos CSS, Javascript, imágenes y otros archivos que se quieran hacer públicos.

  • resources – Esta carpeta contiene a su vez tres carpetas: assets, views y lang:

    • resources/views – Este directorio contiene las vistas de nuestra aplicación. En general serán plantillas de HTML que usan los controladores para mostrar la información. Hay que tener en cuenta que en esta carpeta no se almacenan los Javascript, CSS o imágenes, ese tipo de archivos se tienen que guardar en la carpeta public.

    • resources/lang – En esta carpeta se guardan archivos PHP que contienen arrays con los textos de nuestro sitio web en diferentes lenguajes, solo será necesario utilizarla en caso que se desee que la aplicación se pueda traducir.

    • resources/assets – Se utiliza para almacenar los fuentes de los assets tipo less o sass que se tendrían que compilar para generar las hojas de estilo públicas. No es necesario usar esta carpeta ya que podemos escribir directamente las las hojas de estilo dentro de la carpeta public.

  • bootstrap – En esta carpeta se incluye el código que se carga para procesar cada una de las llamadas a nuestro proyecto. Normalmente no tendremos que modificar nada de esta carpeta.

  • storage – En esta carpeta Laravel almacena toda la información interna necesarios para la ejecución de la web, como son los archivos de sesión, la caché, la compilación de las vistas, meta información y los logs del sistema. Normalmente tampoco tendremos que tocar nada dentro de esta carpeta, unicamente se suele acceder a ella para consultar los logs.

  • tests – Esta carpeta se utiliza para los ficheros con las pruebas automatizadas. Laravel incluye un sistema que facilita todo el proceso de pruebas con PHPUnit.

  • vendor – En esta carpeta se alojan todas las librerías y dependencias que conforman el framework de Laravel. Esta carpeta tampoco la tendremos que modificar, ya que todo el código que contiene son librerías que se instalan y actualizan mediante la herramienta Composer.

Además en la carpeta raíz también podemos encontrar dos ficheros muy importantes y que también utilizaremos:

  • .env – Este fichero ya lo hemos mencionado en la sección de instalación, se utiliza para almacenar los valores de configuración que son propios de la máquina o instalación actual. Lo que nos permite cambiar fácilmente la configuración según la máquina en la que se instale y tener opciones distintas para producción, para distintos desarrolladores, etc. Importante, este fichero debería estar en el .gitignore.

  • composer.json – Este fichero es el utilizado por Composer para realizar la instalación de Laravel. En una instalación inicial únicamente se especificará la instalación de un paquete, el propio framework de Laravel, pero podemos especificar la instalación de otras librerías o paquetes externos que añadan funcionalidad a Laravel.

Publicado en Tutoriales | Etiquetado ,