Mejorando el git checkout
Hace un buen tiempo había encontrado un truco para ejecutar comando mas complejos usando los alias de git. Este es un sección del archivo ~/.gifconfig donde se describen los alias disponibles por la terminal. [alias] sync = "!f() { git pull origin ${master:-$1} --rebase; }; f" El truco es envolver lo que quieres en "!f() { ... }; f". $1 hace referencia al primera parámetro del comando ejecutado. Con git sync develop recibimos develop con solo git sync se ejecuta el comando con master. De esta forma podemos mantener sincronizado un rama con el destino haciendo rebase con un comando verificando incluso el estado de la rama remota. La verdad que usar alias de git una vez que te acostumbras y entiendes lo que pasa por debajo te vuelve más productivo. Estaba buscando un comando similar a la hora de cambiar de ramas para no tener que buscarlas Pero de pronto me conseguí un artículo que me mostró este comando. git checkout “$(git branch — all | fzf | tr -d ‘[:space:]’)” fzf es una de las cosas mas geniales de la terminal, permite visualizar y seleccionas de una lista fácilmente. Lo había usado en carpetas del sistema de archivos pero con git no. Parecía una buena idea. El comando no me funciono del todo bien pero marco un senda. git checkout “$(git branch --no-color | sed 's/^[* ]*//' | fzf)" Esto era exactamente lo que quería, solo tenia que engancharlo con un alias de git y estaba completo. Pero con un poco de conocimiento de parámetros en bash tenemos esto: [alias] co = "!f() { \ if [ \"$#\" -eq 0 ]; then \ branch=$(git branch --no-color | sed 's/^[* ]*//' | fzf); \ if [ -n \"$branch\" ]; then \ git checkout \"$branch\"; \ fi; \ else \ git checkout \"$@\"; \ fi; \ }; f" Aca podemos ver como se ve cuando ejecutamos git co (alias de checkout) Ahora ejecutando git co my-branch se ejecuta el git checkout my-branch de toda la vida y con git co (como en la foto) ejecuta el comando con fzf y puede elegir entre un conjunto de ramas disponibles para rápidamente cambiar. Easy!

Hace un buen tiempo había encontrado un truco para ejecutar comando mas complejos usando los alias de git. Este es un sección del archivo ~/.gifconfig
donde se describen los alias disponibles por la terminal.
[alias]
sync = "!f() { git pull origin ${master:-$1} --rebase; }; f"
El truco es envolver lo que quieres en "!f() { ... }; f"
. $1
hace referencia al primera parámetro del comando ejecutado. Con git sync develop
recibimos develop
con solo git sync
se ejecuta el comando con master
. De esta forma podemos mantener sincronizado un rama con el destino haciendo rebase con un comando verificando incluso el estado de la rama remota.
La verdad que usar alias de git una vez que te acostumbras y entiendes lo que pasa por debajo te vuelve más productivo. Estaba buscando un comando similar a la hora de cambiar de ramas para no tener que buscarlas
Pero de pronto me conseguí un artículo que me mostró este comando.
git checkout “$(git branch — all | fzf | tr -d ‘[:space:]’)”
fzf es una de las cosas mas geniales de la terminal, permite visualizar y seleccionas de una lista fácilmente. Lo había usado en carpetas del sistema de archivos pero con git no. Parecía una buena idea. El comando no me funciono del todo bien pero marco un senda.
git checkout “$(git branch --no-color | sed 's/^[* ]*//' | fzf)"
Esto era exactamente lo que quería, solo tenia que engancharlo con un alias de git y estaba completo. Pero con un poco de conocimiento de parámetros en bash tenemos esto:
[alias]
co = "!f() { \
if [ \"$#\" -eq 0 ]; then \
branch=$(git branch --no-color | sed 's/^[* ]*//' | fzf); \
if [ -n \"$branch\" ]; then \
git checkout \"$branch\"; \
fi; \
else \
git checkout \"$@\"; \
fi; \
}; f"
Aca podemos ver como se ve cuando ejecutamos git co
(alias de checkout
)
Ahora ejecutando git co my-branch
se ejecuta el git checkout my-branch
de toda la vida y con git co
(como en la foto) ejecuta el comando con fzf
y puede elegir entre un conjunto de ramas disponibles para rápidamente cambiar. Easy!