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