Affected files: .obsidian/plugins/update-time-on-edit/data.json 01. Projects/Playa/Games.md 01. Projects/Playa/Movies-Series.md 03. Resources/Notetaking/CODE Method.md notes/Git.md
2 KiB
| created | updated | tags | |
|---|---|---|---|
| 2024-02-13 22:36 | 2024-02-17 11:18 |
|
Merge strategies
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 referenciagit 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