Update from obsidian - thinkpad

Affected files:
.obsidian/app.json
.obsidian/graph.json
.obsidian/plugins/obsidian-omnivore/data.json
.obsidian/plugins/update-time-on-edit/data.json
01. Projects/Fuuka/Outline.md
01. Projects/Juuno/Outline.md
01. Projects/Renuncia/Renuncia.md
02. Areas/Dotfiles/dotfiles tasks.md
02. Areas/Escape Latam/Canada.md
02. Areas/Escape Latam/Comparación de Paises.md
02. Areas/Escape Latam/Escapar de Latam.md
02. Areas/Escape Latam/New Zeldand.md
03. Resources/Development/Feature shipment checklist.md
03. Resources/Development/Fix messy commits.md
03. Resources/Development/Git.md
03. Resources/Development/Iframes.md
03. Resources/Development/Revert old changes in a codebase.md
03. Resources/Development/Search for a bug.md
03. Resources/Notetaking/Habits.md
Read Later/2024-02-12 - Debouncing in JavaScript – Explained by Building Auto-Complete Functionality in React.md
notes/Git.md
This commit is contained in:
Alexander Navarro 2024-02-20 12:23:30 -03:00
parent c82f170ec4
commit c84ad03d4c
21 changed files with 573 additions and 61 deletions

View file

@ -1,41 +0,0 @@
---
created: 2024-02-13 22:36
updated: 2024-02-18 15:29
tags:
- dev-tools
---
## Merge strategies
![Notes](Git%20Merge%20vs%20Rebase%20vs%20Squash%20¿Qué%20estrategia%20debemos%20elegir-.md#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