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!