Git

Git

1. ¿Qué es?

Git es una herramienta o programa que sirve para tener un control de las distintas versiones de un proyecto. Git es capaz de saber qué se ha cambiado de una versión a otra, quién lo ha hecho y cuando se ha hecho.

2. Conceptos básicos

Git tiene una parte local, en nuestro ordenador, y una parte remota, donde se guarda online el proyecto para que otras personas puedan trabajar con él. La parte remota puede ser un servidor privado o servidores conocidos como Github, Gitlab, Bitbucket.

Por defecto, nuestro proyecto va a estar en el área/estado «Working Directory o Workspace». Cuando hacemos modificaciones a los archivos y ya queramos crear una versión del proyecto tendremos que «mandar» esos archivos al área/estado «Stage o Staging». Luego con el comando git commit se guardará la versión para el área/estado actual de esos archivos. Esta información se guarda en el área/estado «Local repository». Sólo cuando se ejecute git push se mandará todas las versiones o commits al repositorio remoto.

Estados de Git
GitFlow

3. Instalar Git

Click aquí para ir a la web y elegir arriba el sistema operativo que usas. Una vez instalado y si estamos en Windows, abriremos la apliación Git Bash y escribiremos git –version para ver su versión y si está bien instalado.

Necesitaremos guardar nuestro email y nombre de usuario para poder hacer commits.
Escribiremos:
git config –global user.email «miemail@example.com»
git config –global user.name «mi nombre»

Si solo queremos cambiar los datos para un repositorio local en particular cambiaremos el –global por –local .

4. Comandos básicos

Iniciar Git en el directorio actual

git init

Clonar repositorio de servidor a local

git clone http://url

Saber si hay cambios en local en los archivos con respecto al último commit

git status

Añadir los archivos modificados al área Staging

git add -A o git add –all
git add . ( para los cambios en el directorio actual )
git add * ( solo los archivos nuevos y modificados, no los eliminados )

Quitar los archivos del área Staging y devolverlos al Working directory

git reset
git reset –hard ( para recuperar también los archivos borrados )

Guardar una versión o hacer una snapshot del proyecto

git commit -m «nombre del commit»

Volver a un estado anterior al último commit

git reset HEAD~

Eliminar un archivo y añadirlo al área Staging

git rm nombre-archivo
git rm -f nombre-archivo ( para borrarlo cuando ha sido modificado después de un commit )
git rm –cached nombre-archivo ( borra el archivo del área Staging y se queda en el Working directory )
git rm -r carpeta ( borra recursivamente la carpeta y sus hijos )

Ver los commits o versiones realizados

git log
git log –oneline

Ver las ramas o branch

git branch ( el * señala en qué rama estamos actualmente )

Crear una nueva rama o branch

git branch nombre-de-la-rama

Cambiar a una rama

git checkout nombre-de-la-rama

Unir una rama o branch a otra

git merge rama-a-unir -m «nombre del commit»

Resolver un conflicto al unir

Cuando se hace un merge y hay conflicto, abrimos los archivos problemáticos y solucionaremos el problema. Luego se ejecuta git add nombre-archivo y git commit -m «nombre commit»

Cambiar a un commit

git checkout id-del-commit

Comparar entre 2 commits

git diff id-commit-1 id-commit-2

Enviar el commit al servidor online

git push origin main ( origin es el online y main es el local )

Traer el último commit online a local

git fetch ( trae el commit pero no lo puedes ver a no ser que haga git merge justo después )
git pull ( trael el commit y le hace merge automaticamente )

Devolver un archivo/carpeta al estado del último commit

git restore nombre-archivo
git restore nombre-carpeta
git restore . ( todos los archivos al último commit y se pierden las modificaciones )
git restore –staged . ( no se pierden las modificaciones )

Guardar un momento dado sin hacer commit para moverse a otra rama y luego poder volver

git stash
git stash pop ( recupera los cambios del stash y elimina el stash de la pila )
git stash apply ( recupera los cambios del stash pero no elimina el stash de la pila )

Mostrar la lista de stash y recuperar uno en concreto

git stash list
git stash pop stash@{0}
git stash apply stash@{0}

Borrar un stash

git stash drop

Crear un nuevo commit para revertir el último

git revert id-commit

Borrar todos los commits posteriores a uno en concreto

git reset

Actualizar tu rama con los cambios de otra

git rebase nombre-rama ( no es aconsejable, avisar al equipo )

Borrar una rama

git branch -d nombre-de-la-rama
git branch -D nombre-de-la-rama ( fuerza el borrado )

Comando para crear ramas en remoto automáticamente

git config –global push.autoSetupRemote true

Deja un comentario