Manual básico de Git

Uso Git básicamente para llevar un control sobre los cambios en mis proyectos. Me resulta muy útil cuando quiero probar cosas nuevas y tener la seguridad de que en caso de que me acabe estrellando pueda volver a un punto donde las cosas funcionaban correctamente. GitHub además me sirve como backup y un medio de tener mis proyectos accesibles desde cualquier sitio. En Internet hay cientos de manuales y tutoriales más completos y mejores. Aquí voy escribiendo a modo de recordatorio o chuletero lo que voy aprendiendo y usando en mi día a día. Work in process…

Crear un repositorio nuevo

Situarnos en el directorio y ejecutar

$ git init

Enviar el repositorio local a GitHub

Crear el repositorio en GitHub sin inicializarlo. Sin archivos README, licencia o .gitignore. Esto se podrá hacer luego. Copiar la URL del repositorio

Agregar la dirección del repositorio remoto y verificarlo

$ git remote add origin https://github.com/tuusername/turepositorio.git

$ git remote -v

Subir los cambios del repositorio local a GitHub

$ git push origin master

Commits

Añadir todos los archivos con cambios

$ git add .

Hacer el commit

$ git commit -m "Mensaje del commit"

Si hemos olvidado hacer un pequeño cambio por el que no merece la pena hacer un nuevo commit o que expresamente queremos incluirlo en el último commit podemos añadirlo con el flag –amend

$ git commit --amend -m "Nuevo mensaje para el commit"

Si no queremos cambiar el mensaje del commit

$ git commit --amend --no-edit

Si subimos los cambios a GitHub después de haber hecho el amend nos dará el error non-fast-forward, aquí se explica el motivo, en cualquier caso y si estamos seguros de seguir adelante hacer el push con

$ git push -f origin master

Descartar cambios en archivos locales

Si queremos descartar todos los cambios

$ git restore .

Si adicionalmente queremos borrar archivos nuevos que esten «untracked»

$ git clean -f

Ramas

Crear una nueva rama

$ git branch nombre_rama

Movernos a la nueva rama creada

$ git checkout nombre_rama

Podemos crear una rama y movernos a ella en un mismo comando

$ git checkout -b nombre_rama

Volver a la rama principal

$ git checkout master

Para fusionar una rama a la rama activa

$ git merge nombre_rama_a_fusionar

Subir la nueva rama a tu repositorio remoto

$ git push origin nombre_rama

Borrar una o varias ramas

$ git branch -d nombre_rama
$ git branch -d nombre_rama1 nombre_rama2

Borrar una rama en el repositorio remoto

$ git push origin -d nombre_rama