Comandos de Git que uso todos los días

Recuerdo cuando empezaba a programar, hace mas o menos 8 años. La forma de agregar features a mi software era usando un servidor FTP y alterar archivos directo en el servidor. Hacía backups duplicando la carpeta del código, y luego la renombraba con un sufijo _BACKUP. Eso es cosa del pasado. Desde que aprendì las bases de git se ha vuelto a mi forma estándar de trabajar con versionamiento de código. Hoy te comparto los comandos que uso a diario, tal vez alguno te sirva.

TL;DR

Estos comandos son bastante útiles para trabajar en equipo en el mismo repo de git. Desde como resetear una branch local, hasta como hacer rebase interactivo, cada comando tiene un valor bastante bueno en nuestra vida de programador.

Todos los comandos están en este gist.

Comandos y descripción corta

Hacer stash de todos los archivos, nuevos o modificados .

git stash save --include-untracked "nombre del stash"

Hacer stash de todos los archivos, nuevos o modificados MAS corto

git stash -u

Retomar los cambios del ultimo stash guardado

git stash pop

Hacer un hard reset local de una branch

git reset --hard origin/branch_name

Remover N commits de una branch

git reset --hard HEAD~5 # Ultimos 5 commits eliminados

Deshacer N commits de una branch, pero dejar los cambios locales

git reset --soft HEAD~1 # Ultimo commit se convierte en cambios no commiteados

Actualizar branch actual con fetch y pull en un solo

git fetch -p && git pull

Agregar cambios staged al ultimo commit, edita el último commit

git commit --amend --no-edit

Agregar commit (usando el hash) a la actual branch

git cherry-pick ...HASH # 1 o > 1 hashes 

Agregar cambios (usndo el hash) a la actual branch, como cambios no commiteados

git cherry-pick -n ...HASH # 1 o > 1 hashes

Ver los commits en una linea cada uno

git log --pretty=oneline --abbrev-commit

Ver los commits con un log mas legible

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

Obtener el hash del ultimo commit

git rev-parse --verify HEAD

Usar git rebase interactive para eliminar commits dentro de la branch

git rebase -i HEAD~N # N es el numero de los ultimos de commits a evaluar

Usar siempre nano para editar rebases, mensajes de git, y asi

git config --global core.editor "nano"

Como solucionar el CRLF problem en Windows y Git, [fuente] (https://stackoverflow.com/questions/49228693/how-to-change-eol-for-all-files-from-clrf-to-lf-in-visual-studio-code )

git config core.autocrlf false && git rm --cached -r . 
&& git reset --hard

Asumir que un archivo no ha sido cambiado , y que git no lo trackee.

git update-index --assume-unchanged /path/to/file

Espero que algún comando te sirva.

Happy coding!