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
39 lines
2 KiB
Markdown
39 lines
2 KiB
Markdown
---
|
||
created: 2024-02-13 22:36
|
||
updated: 2024-02-13 22:36
|
||
---
|
||
## 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 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
|