¿Es posible ejecutar commands git sin el prefijo git?

Como dice el título, ¿es posible iniciar un shell git interactivo en el que todos los commands estén precedidos automáticamente por git ?

Entonces, en lugar de hacer:

 git fetch git add git commit 

Quiero ser capaz de hacer algo como esto:

 git -i #start the 'interactive' git shell, not the right command obviously fetch #does git fetch add #does git add commit #does git commit git -x #exit the 'interactive' git shell 

No creo que ese modo esté integrado en git. Te sugiero que compruebes git-sh . Puede configurarlo para usar los alias que prefiera.

Si está utilizando el shell Bash, puede establecer un "controller de command no encontrado", que es una function de shell que se ejecutará siempre que no se reconozca ningún command. Puede usar eso para intentar ejecutar git-status si ejecuta el status y el shell no puede encontrar ese command, por ejemplo

 command_not_found_handle() { gitcmd=`git --exec-path`/git-$1 ; if type -a $gitcmd >/dev/null 2>&1 ; then shift ; exec $gitcmd "$@" ; fi ; echo "bash: $1: command not found" >&2 ; return 1 ; } 

Esto no ampliará los alias de git , solo reconoce los commands que existen como ejecutables en el directory GIT_EXEC_PATH , como /usr/libexec/git-core/git-status

 master*% src$ pwd /home/jwakely/src/foo/src master*% src$ git status -s M include/foo.h ?? TODO master*% src$ status -s # runs 'git-status -s' M include/foo.h ?? TODO master*% src$ git st # a git alias M include/foo.h ?? TODO master*% src$ st # does not recognize git alias bash: st: command not found 

Si desea que maneje alias, pero con la desventaja de que cualquier command no reconocido (incluyendo errores tipocharts) se pasará a Git, puede hacerlo mucho más simple:

 command_not_found_handle() { git "$@" ; } master*% src$ st # runs 'git st' M include/foo.h ?? TODO master*% src$ statu # runs 'git statu' git: 'statu' is not a git command. See 'git --help'. Did you mean one of these? status stage stash 

Gitsh es, tal vez, ¿qué estás buscando?

http://robots.thoughtbot.com/announcing-gitsh

Y el repository de github: https://github.com/thoughtbot/gitsh