GIT control de versiones


Git es un sistema de control de versiones distribuido gratuito y de código abierto diseñado para manejar todo, desde proyectos pequeños hasta proyectos muy grandes, con rapidez y eficiencia.

Git documentación oficial

Git es el más popular de los sistemas de control de versiones en la actualidad y una de las herramientas más indispensables para el desarrollo de proyectos.

Aunque un sistema de control de versiones sirva justamente para controlar los estados por los que ha pasado un código, lo cierto es que la herramienta git facilita mucho el desarrollo de los proyectos en equipo, así como otras operaciones relacionadas con el flujo de trabajo de los desarrolladores .

¿Qué encontrarás aquí?


En esta entrada encontraras mis apuntes relacionados con el manejo y funcionamiento de git, ademas de un video curso donde explican estos mismos.

Como funciona git?


Para estandarizar git y manejar mas eficientemente su funcionamiento en Windows es recomendable utilizar la Aplicación GitBash. Con ella podremos usar git con los comandos mas típicos de terminal Linux.

Para trabajar correctamente con git debemos comprender que éste trabaja por etapas. Hay 4 etapas que siguen el siguiente orden:

PC -> Stage -> Commit -> Server

PC

Desde nuestro pc podremos agregar archivos de la etapa Stage, para hacer esto utilizamos el comando:

git add

Stage

Stage es una etapa intermedia para determinar qué cambios efectuamos para enviar al repositorio. Una vez revisada la etapa de stage podremos seleccionar los cambios deseados y descartar el código que aun no este finalizado o no nos interese subirlo al repositorio. Para ello utilizamos el siguiente comando:

git commit

Commit

Commit se puede traducir como un compromiso, pues al ejecutar la anterior línea a la terminal comprometemos los archivos que queremos subir al servidor donde tengamos alojado el repositorio.

Para subir los archivos al servidor utilizamos:

git push

Server

Existen distintos servicios de alojamiento de repositorios como gitlab, Bitbucket, o github. Por supuesto puedes disponer de tu propio servidor de repositorios privado con el que poder gestionar los repositorios con git.

Configuración post instalación, configuración local


Una vez tengamos descargado git hay que tener en cuenta las siguientes configuraciones:

Configurar el nombre que queremos asignar:

git config --global user.name "NombreUsuario"

Configurar la cuenta correo:

git config --global user.email contact@gmail.com

Indicar a git vscdoe como editor predeterminado:

git config - -global core.editor "code --wait"

Ver el archivo de configuración global:

git config --global -e

CORE.AUTOCRLF


Cada vez que presionas “Enter” en tu teclado, insertas un carácter invisible denominado fin de línea. Esto se maneja de forma diferente en los diferentes sistemas operativos. Por lo que dependiendo del sistema operativo donde estés trabajando deberás configurarlo de una forma u otra. Tienes mas información aquí!

windows core.autocrlf:

git config --global core.autocrlf true

Linux / Mac core.autocrlf:

git config --global core.autocrlf input

Listado de configuraciones:

git config -h  

Comandos básicos para desplazarse con gitbash


Con gitbash podemos utilizar los comandos típicos de una terminal Linux, entre todos destacar los esenciales, para moverse por nuestros proyectos relacionados con git.

  • ls para listar el directorio.
  • pwd para imprimir la direccion del directorio.
  • cd para moverse entre directorios.
  • mkdir para crear un nuevo directorio “carpeta”.
  • mv para mover un archivo o cambiar su nombre

Inicializar un repositorio


Antes de nada, recordar que para un mejor manejo de nuestros proyectos y nuestros repositorios es recomendable siempre crearse un directorio al PC donde almacenar estos.

Una vez tengamos el directorio creado deberemos dirigirnos a el por terminal i declarar:

git init

Esta orden nos generara contenido dentro del directorio, la carpeta .git es siempre ignorada y no se comparte dentro del repositorio.

Status de nuestro repositorio


Git nos permite visualizar cuales archivos son comprometidos dentro del repositorio, también nos indica los archivos que han sido modificados localmente y son idénticos a los de la versión del repositorio.

Untracked files son los archivos que no forman parte del repositorio.

Para ver el estatus de nuestros archivos hay que escribir:

git status

Indicaciones de status:

  • Changes to be comitted: Archivos listos para pasar de Stage a Commit.
  • Changes not staged for commit: Diferencias entre los archivos locales y los de Stage.

Podemos ver una forma mas resumida de status con el siguiente código de letras y colores:

git status -S
  • M -> Es que esta en stage.
  • M -> Es que esta para eliminar.
  • ?? -> Significa que no esta dentro de stage.
  • A -> Significa ADD.

Diferencias entre los archivos


Podemos imprimir en la terminal las diferencias que existen entre los archivos o los cambios que se han echo en la etapa de stage.

Imprimir las diferencias existentes entre archivos:

git diff

Imprimir cambios en la etapa stage:

git diff --staged

Añadir un archivo dentro del repositorio


Hay varias formas de adherir un archivo o varios al nuestro en el repositorio, aun que este ultimo puede ser una mala práctica a menos que tengamos la seguridad de que todos los archivos deben ser adheridos.

Añadir todos los archivos:

git add.

Añadir uno o múltiples archivos:

git add archivo1.txt archivo2.txt archivo3.jpg 

Añadir todos los archivos según la extensión:

git add *.txt

Crear un commit:


Una vez tengamos todos los archivos preparados podemos comprometerlos y pasarlos de stage a commit.

git commit -m "Un mensaje ejemplo: Commit inical"

Si un archivo commit se edita localmente y se quiere actualizar el comit con los nuevos cambios:

git add archivo.txt
git commit

Remover archivos o recuperarlos:


Podemos remover archivos de un stage, para conseguirlo debemos entender el flujo de trabajo que tiene git. Es decir, debemos comprender que en el stage se actualiza a partir de los archivos locales del pc. Por lo que para eliminarlo, primero debemos eliminar el archivo localmente y seguidamente subir la actualización de stage.

Eliminar directamente un archivo de stage

git rm archivo.txt

Recuperar un archivo en la etapa stage:

git restore - -staged archivo.txt

Ignorar archivos


Dentro de nuestro repositorio local podemos encontrarnos con archivos innecesarios de subir, complementos que de por si son generados por los frameworks o otras herramientas y que en cualquier equipo con el que trabajemos los replicara o instalara dependiendo de las necesidades.

Para todos aquellos archivos, podemos declararlos dentro del archivo .gitignore línea por línea.

Mostrar información sobre quien ha creado commits


Podemos visualizar en cualquier momento quien ha creado commits:

git log

También podemos ver el historial de commit:

git log --oneline

Ramas del repositorio


Es importante asegurar que tenemos la zona de trabajo limpia, sin actualizaciones o dependencias pendientes al proyecto.

⚠️ Antes de hacer una nueva rama es importante que status nos muestre el siguiente mensaje:

git status

On branch main
nothing to commit,working tree clean

Para saber en que rama estamos:

git branch

Para crear una nueva rama:

git checkout -b Nombre-de-la-Rama

Para moverse como un mono 🙈 de rama en rama:

git checkout Nombre-de-la-Rama

Para unir una rama a main primero debemos asegurarnos de que estamos dentro de la rama principal i seguidamente:

git merge Nombre-de-la-rama-Que-Queremos-Unir-A-Main

Utilizar github como servidor para nuestros repositorios:

Utilizar git para añadir nuestros repositorios en github es bastante fácil i simple, para ello seguiremos los siguientes pasos:

  1. Registrarse a github!
  2. Crear un repositorio solo publico, sin readme ni nada mas que publico.
  3. Copiar la línea de url de nuestro nuevo repositorio y pegar en la terminal bash:
git remote add origin https:github...

Por ultimo vamos a ordenarle a git que nos suba el repositorio:

push -u origin main

Seguidamente nos pedirá el nombre de usuario de github y una key de seguridad, para acceder a esta clave, deberás buscar en las opciones de github:

Settings -> developer settings -> Personal access tokens -> Generate new token.

Y con esto si todo ha salido correcto dispondrás de tus repositorios en github.

Video curso intensivo GIT en 1 hora


Dejo aquí el video que me inspiro en tomar apuntes y aprender de una vez por todas como funciona git.

Quieres saber mas?


GIT control de versiones

Post navigation