Cuando trabajamos en equipo o simplemente para organizar mejor nuestros proyectos es muy importante trabajar con un sistema de control de versiones que registrará  los cambios que vayamos haciendo en nuestro trabajo y así poder por ejemplo recuperan partes que hayamos borrado o versión específicas.

Existen distintos tipos de controladores de versiones, yo he trabajado en empresas que usaban Subversion, CVS o similares pero desde hace ya bastante años todas las empresas optan por GIT.

Para alojar nuestro código y así compartirlo de manera sencilla con el restro de colaboradores del proyecto usaremos un hosting especializado, el más común y conocido es Git Hub pero las empresas suelen optar por otras soluciones profesionales que permitan hacer repositorios privados como AWS (Amazon) o BitBucket (Atlassian), hay muchos más y en este site podéis encontrar una comparativa.

Comandos básicos de git

Para crear un nuevo repositorio usaremos el comando git init. Este comando nos creará el «Staging» (donde se almacenarán nuestro archivos) y un repositorio local (donde guardará el histórico del proyecto).

Y para descargarnos un proyecto ya creado git clone. Qué hará lo mismo que el comando anterior pero clonando los archivos y el historial desde el hosting.

  • git status: Muestra el estado de nuestros archivos (‘untracked’, ‘unstaged’, ‘staged’, ‘tracked’). Si queremos verlo más compacto de solo vistazo podemos añadir -s.
  • git add nombre_del_archivo: añade el archivo referenciado al staging o cabeceras del nuestro próximo commit, si en lugar del nombre_del_archivo ponemos ‘.’ (punto) añadiremos todos nuestros archivos que hayan sufrido modificaciones o hayamos añadido.
  • git commit -m «mensaje»: Guardamos una versión de nuestros archivos modificados o añadidos en el repositorio local (aun no estamos compartiendo nada con el resto de colaboradores. En el mensaje anotamos el motivos de nuestros cambios y podemos añadir la id de una tarea de ClickUp o Jira para asociarlos.
  • git reset HEAD: quita los archivos que hayamos añadido con git add si aun no hemos hecho el commit.
  • git reset –soft HEAD~1: deshacemos un commit en local (si aun no hemos pusheado)
  • git push: empuja nuestro repositorio local al hosting.
  • git pull: actualiza nuestro código local con la última versión del hosting, es muy recomendable hacerlo antes de subir lo nuestro para evitar conflictos.
  • git rm nombre_del_archivo: borra un archivo de nuestro directorio de trabajo, pero no del historial del sistema de versiones. si añadios –cached los pondrá en estado ‘untracked’ y si usamos –force los eliminará de nuestro disco duro.

Estados de nuestros archivos en git

La vida de los archivos en nuestro repositorio local pasa por varios estados:

  1. untracked: Cuando el archivo no puede se rastreado por git, normalmente por que esté definido así en .gitignore
  2. unstaged: Los archivos que han sufrido alguna modificación o son nuevos por que han sido añadidos
  3. staged: Son aquellos que hemos añadido a las cabeceras para ser incluidos en el próximo commit
  4. tracked: Cuando ya pertenecen a un commit y están listo para ser empujados hacia el repositorio

¿Qué son las Ramas o Branches en git?

Mientras trabajamos en un proyecto, por defecto lo hacemos en la rama «Master», es nuestro flujo de trabajo habitual. Pero hay ocasiones en las que necesitamos aislarnos de este flujo para desarrollar nuestros trabajo de forma independiente o hasta que tengamos una solución estable. Para esto es en la mayoría de los casos para lo que usamos las ramas.
  • git branch: Nos mostrará un listado con las ramas que tiene el proyecto.
  • git branch nombre_rama: Con esto copiaremos el último commit de nuestra rama actual a la nueva, en caso de que no exista se creará.
  • git checkout nombre_rama: Así es como nos moveremos entre las distintas ramas que tenga nuestro proyecto.
  • git merge nombre_rama: Igualará la rama en la que estemos con la que lleve el nombre que le hemos proporcionado.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Instagram