diff options
-rw-r--r-- | ejercicios.md | 20 | ||||
-rw-r--r-- | es/1.md | 10 | ||||
-rw-r--r-- | es/2.md | 4 | ||||
-rw-r--r-- | extra.md | 11 |
4 files changed, 38 insertions, 7 deletions
diff --git a/ejercicios.md b/ejercicios.md new file mode 100644 index 0000000..3671bc7 --- /dev/null +++ b/ejercicios.md @@ -0,0 +1,20 @@ +1. Crear un repositorio nuevo, con tres remotos diferentes (en nuestro disco + duro). + - usar repositorios bare en los remotos + - analizar el contenido de los repositorios bare + - hacer commits y actualizar los remotos + - comprobar el archivo .git/config para ver cómo están configurados + +2. Crear un conflicto: + - Que sea un conflicto razonablemente grande + - probar los checkouts: ours, theirs, base + - ver diff combinado + - utilizar herramientas de solución de conflictos + - verlos mediante el diff3 + +3. Crear un conflicto, deshacerlo y volver a mergear. + - Hacer lo mismo con ReReRe activado. + +4. Hacer un bisect + +5. Investigar git worktree y contarlo @@ -494,11 +494,11 @@ Si está configurada una herramienta, puede usarse `git mergetool` - `git branch` muestra las ramas - `git branch --merged | --no-merged` muestra las ramas mergeadas o las no mergeadas con la actual. -- `git branch -d <adarra>` borra ramas. Las no-mergeadas no las borra, hay que +- `git branch -d <rama>` borra ramas. Las no-mergeadas no las borra, hay que hacer `-D` para eso (diferencia mayúsculas y minúsculas). -- `git branch --move <adarra> <rama_nueva>` cambiar nombre de rama -- `git push -u|--set-upstream <remote> <adarra>` asigna una rama a un remoto -- `git push <remote> --delete <adarra>` borra una rama en un remoto +- `git branch --move <rama> <rama_nueva>` cambiar nombre de rama +- `git push -u|--set-upstream <remote> <rama>` asigna una rama a un remoto +- `git push <remote> --delete <rama>` borra una rama en un remoto ## Workflows habituales @@ -539,7 +539,7 @@ Es una forma de relacionar una rama remota (*upstream*) y una local - `git checkout <rama>` si la rama local `<rama>` no existe, se crea relacionada con `<remoto>/<rama>` automáticamente. - `git clone` crea una rama local relacionada con la remota automáticamente. -- `git branch -u|--set-upstream-to <remote>/<adarra>` también relaciona las +- `git branch -u|--set-upstream-to <remote>/<rama>` también relaciona las ramas. Ver `git push` > Una vez relacionadas, para referirse a la rama remota puede usarse @@ -514,7 +514,7 @@ Puede ser interesante usar `diff3` para los conflictos. Por defecto se usa Dos modos: -1. `git rest --hard HEAD~` (sobreescribe el histórico) +1. `git reset --hard HEAD~` (sobreescribe el histórico) 2. `git revert -m 1 HEAD` añade un commit que deshace los cambios. Esto da problemas a la hora de volver a combinar la rama. @@ -670,7 +670,7 @@ Son un modo interesante para gestionar subproyectos en el repositorio. `--submodule` que se hace `git diff` - `git submodule update --remote <submodule>` para actualizar los contenidos del submódulo. También se puede hacer `fetch` + `merge` dentro del submódulo. -- `git config -f .gitmodules submodule.<submodule>.branch <adarra>` para +- `git config -f .gitmodules submodule.<submodule>.branch <rama>` para cambiar el submódulo de rama. Equivalente a editar el archivo `.gitmodules` - `git config status.submodulesummary 1` para que `git status` muestre el estado de los submódulos. @@ -72,3 +72,14 @@ Rebasing, what can go wrong https://jvns.ca/blog/2023/11/06/rebasing-what-can-go-wrong-/ How cherry pick and revert work https://jvns.ca/blog/2023/11/10/how-cherry-pick-and-revert-work/ +Do we think of git commits as diffs, snapshots, and/or histories? +https://jvns.ca/blog/2024/01/05/do-we-think-of-git-commits-as-diffs--snapshots--or-histories/ + +Meld diff and merge tool +https://meldmerge.org/ + +Debugging with Git +https://lucasoshiro.github.io/posts-en/2023-02-13-git-debug/ + +Git from the Bottom Up +https://jwiegley.github.io/git-from-the-bottom-up/ |