master-wiki/notes/Git.md
aleidk 59d6b6608e Update from obsidian - thinkpad
Affected files:
01. Projects/Electronic Mantainance/List of electronics.md
01. Projects/Escape Latam/Canada.md
01. Projects/Escape Latam/Comparación de Paises.md
01. Projects/Escape Latam/Escapar de Latam.md
01. Projects/Escape Latam/New Zeldand.md
01. Projects/Fuuka/Outline.md
01. Projects/Juuno/Outline.md
01. Projects/Obtener pasaporte/Obtener pasaporte.md
01. Projects/Página Personal/board.md
01. Projects/Renuncia/Renuncia.md
02. Areas/Dotfiles/dotfiles tasks.md
03. Resources/Notetaking/12. Questions.md
03. Resources/Notetaking/CODE Method.md
03. Resources/Notetaking/North Start.md
04. DEFINIR NOMBRE/2024.md
notes/Devlog.md
notes/Git.md
notes/PARA method.md
2024-02-14 15:26:11 -03:00

2 KiB
Raw Blame History

created updated
2024-02-13 22:36 2024-02-13 22:36

Merge strategies

Notes

Buscar cuando un bug se introdujo

Utilizar git bisect

Fix messy commits

Ya que estas opciones sobre escriben el historial de git, solo deben aplicarse en local y no commits publicados a un remote.

Last commit

Si solo necesitamos agregar un cambio pequeño al ultimo commit (typo o correr el formatter), podemos aplicarlo con git commit --ammend, se puede sobre escribir el mensaje con -m.

Mutiple commits

Se pueden arreglar el historial de commits con un git rebase -i [since commit or branch] y utilizar las estratégias de pick, squash, reword y drop.

En caso de que sepamos que haremos un commit que luego no necesitaremos, podemos hacer:

  • git commit --fixup [commit hash] -> descarta el commit message de este commit y mantiene el del commit de referencia
  • git commit --squash [commit hash] -> git juntará los mensajes de todos los commits a hacer squash y el commit de referencia.

Finalmente podemos hacer git rebase -i --autosquash y git eligirá las opciones necesarias a tomar en vez de tener que hacerlo de manera manual.

Revertir cambios

Si necesitamos "desacer" los cambios introducidos en uno o multiples commits, podemos utilizar ˋgit revert --no-edit older_commit_hashˆ..newer_commit_hashˋ, donde:

  • git realizará un nuevo commit con los cambios contrarios por cada commit en el rango
  • utilizar ˋˆˋ en el ˋold_commit_hashˋ incluirá ese commit en la reversión de cambios, si no se agrega se empezará a revertir de un commit más adelante.
  • ˋ--no-editˋ es utilizado para que git no nos pregunte por el message de cada nuevo commit
  • primero debe ser el commit más antiguo, porque git creará nuevos commits en orden provisto y de hacerlo al revez aparecerán conflictos
  • si solo se quiere revertir un commit, se puede especificar solo ese hash y ya