git alias para las sucursales de caja recientes

Recientemente encontré este command para get una list de las 10 sucursales más recientes que se han prestado.

git reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10 

Quería crear un alias para esta llamada "git recent", pero cuando trato de ejecutar el command config arroja un error. " evento no encontrado "

 git config --global alias.recent 'reflog | egrep -io 'moving from ([^[:space:]]+)' | awk '{ print $3 }' | awk ' !x[$0]++' | head -n10' 

¿Hay alguna forma de get este command complicado como un alias? Si alguien sabe cómo hacerlo, un alias que además de un parámetro numérico sería muy apreciado también. El -n10 al final del command indica cuántas twigs volver.

Esto es para cualquiera que suceda con esta pregunta y este command les interesa. Determiné una forma de esto.

Por una vez, dejé de intentar hacer esto usando el command git config. En su lugar, abrí el file de configuration de git y agregué el alias de esa manera. Agregar git aliases

En segundo lugar, determiné que mi script era correcto. Solo tuve que agregarlo como una function. my_alias = "! f () {<su command complejo>}; f" Cómo agregar una plantilla de alias avanzada en git

Aquí hay un ejemplo de mi alias.

 [alias]
     reciente = "! f () {git reflog | egrep -io 'moviéndose desde ([^ [: espacio:]] +)' | awk '{print $ 3}' | awk '! x [$ 0] ++' | head -n $ {1-10};}; f "

Aunque es un poco diferente de lo que pediste, podría tener más sentido encontrar sucursales que se hayan cambiado recientemente.

En este caso, la git branch tiene una --sort=<key> , que puede imprimir las twigs orderadas por la key dada, por ejemplo:

 git branch --sort=-committerdate -v 

Esto orderará las twigs por committerdate , pero se invertirá según lo especificado por el prefijo - como en -committerdate . Y también imprime la última confirmación, para configurar un alias, como br , ejecuta este command:

 git config --global alias.br "branch --sort=-committerdate -v" 

Ver el manual de git-branch .

"evento no encontrado" proviene de tu bash que interpreta el ! en la línea de command … mezcló sus comillas simples en el segundo command. Debe quedar claro cómo solucionar esto; di si tienes problemas para resolverlo …

Las comillas dobles tampoco funcionan:

 > echo '!' ! > echo "!" bash: !: event not found 

Sugerencia: puede hacer las comillas externas ' y luego usar " adentro, esto escapingá al command completo, incluido el ! De bash.

No tengo time ahora para hacerte esa statement, pero estoy seguro de que lo resolverás enseguida …;)