Me pregunto si hay una manera de evitar tener que escribir la palabra git al comienzo de cada comando Git.
Sería bueno si hubiera una manera de usar el gitcomando solo una vez al principio después de abrir un símbolo del sistema para ingresar al "modo Git" .
Por ejemplo:
git>
Después de lo cual, cada comando que escribimos se interpreta por defecto como un comando Git.
De manera similar a cómo usamos el shell MySQL para escribir comandos de la base de datos:
mysql>
Esto me ahorrará tener que escribir gitcientos de veces al día.
NOTA: Estoy usando git-bash, en Windows.

Respuestas:
Es posible que desee probar gitsh . De su léame:
O echa un vistazo a los otros proyectos vinculados allí:
Nota: No he usado esto yo mismo.
fuente
repl(1)no es una REPL. No evalúa ni imprime nada. Ejecuta programas.fork()/exec()), porrepl(1)lo que ni siquiera está haciendo eso .IOacciones por defecto y las ejecutará, incluidos los efectos secundarios, como imprimir en la pantalla conectada al terminal.replno es un REPL independiente; Es un medio de crear un sistema REPL en el quereplsolo se encuentra el componente interactivo. ¿Es eso justo?Un Perl one-liner que hará esto:
Esto ejecutará lo que escriba, con el prefijo
git. Y seguirá haciéndolo hasta que golpees^D.fuente
-nebanderas de Perl ).perl -MTerm::ReadLine -E '$n = Term::ReadLine -> new ("git"); while ($_ = $n -> readline ("git > ")) {system "git $_"}'Esto no es exactamente lo que está pidiendo, pero puede configurar algunos alias de shell en
~/.bashrclos comandos Git que usa con más frecuencia:También tenga en cuenta que puede crear alias dentro de Git:
Esto le permite escribir en
git cilugar degit commit, y así sucesivamente.fuente
git hash-objectogit interpret-trailers? Solo estoy ofreciendo esto como una alternativa porque, hasta donde yo sé, lo que está preguntando realmente no existe.ciparacommit, también uso un alias de shellgparagit, esto reduce la mayor parte de la escritura y me permite permanecer en mi shell preferido.Soy un gran fanático del uso de alias en ~ / .bash_profile para mi GitBash. Si sigue este enfoque, estos son algunos de mis favoritos:
fuente
commitpushUsa tu editor.
Escriba el comando like
commitde su editor favorito como vs code y sea más eficiente con git:O escriba
gitpara obtener todos los comandos:fuente
Un amigo mío hizo un pequeño script de bash que logra esto. Se llama Replificar .
fuente
evalla fuente del script original no es la mejor idea. Dile a tu amigo que usewhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";doneen su lugarAquí hay otra manera. Tampoco es exactamente lo que se pidió, pero lo he estado usando durante algún tiempo y es bastante agradable. Agregue la siguiente línea a su
~/.bashrc:Ahora, presionando Tab en un indicador de Bash vacío escribirá "git".
fuente
~/zshrc, para tcsh, lo colocará~/tcshrc, etc.Sé que esta es una respuesta muy tardía, pero esta pregunta realmente me llamó la atención porque he estado
lidiando consufrimiento de este tipo de repetición durante bastante tiempo.No estoy seguro de ti, pero honestamente no (repito NO ) quiero crear alias para cada
gitcomando, así que escribí un script de Python llamado NoGit para resolver este problema:NoGit es un script simple de Python para evitar la repetición innecesaria de la palabra clave "git".
Documentación:
%undocomando elimina el último comando de la pila%runcomando ejecuta los comandos en la pila y borra la pila%exitcomando cierra la CLI sin hacer nadactr+ces lo mismo que correr%run; %exitgit.historyen la misma carpeta que el scriptgital comienzo del comando y el script no la duplicará (por ejemplo,git initno se conviertegit git init)Comandos de ejemplo:
initadd .stage .commit -m "inital commit"%run; %exitInformación adicional (para usuarios de Linux):
Si lo desea, puede eliminar la
.pyextensión y convertirla en un ejecutable usando:Luego, en lugar de llamar al script de esta manera:
En su lugar, ejecutarías esto:
Información adicional (para personas perezosas):
Si eres flojo y no quieres escribir un,
./entonces puedes mover este script a tu/bin/carpeta y crear un alias para él.Si usted es realmente, realmente perezoso, utilice los siguientes comandos:
Si eres muy, muy, muy vago, copia y pega la siguiente línea:
Si su pereza ha alcanzado niveles previamente desconocidos para la humanidad, aquí hay una versión más compacta de la misma frase:
Buena suerte.
fuente
Otro enfoque que funcionará con cualquier comando: use Ctrl + R (reverse-i-search).
Reverse-i-search le permite buscar en su historial de comandos. Repita Ctrl + R después de presionar su cadena de búsqueda para repetir la búsqueda más atrás con la misma cadena.
Solo necesita escribir un comando una vez, luego puede recuperar ese comando de cualquier subcadena del comando. En la mayoría de los casos, puede recuperar comandos completos muy largos y sus diversas variantes con solo dos o tres letras de búsqueda bien ubicadas. No se necesitan configuraciones previas que no sean usar su shell normalmente y es autoadaptable a la forma en que usó el shell, simplemente escriba el comando completo una vez y los comandos se agregarán automáticamente a su historial de comandos.
git commit --amend:<Ctrl+R>amgit pull:<Ctrl+R>pugit rebase --rebase-merges -i --onto origin/develop origin/develop feature/blue-header:<Ctrl+R>blugit rebase --abort:<Ctrl-R>abgit rebase --continue:<Ctrl-R>condocker-compose stop && git pull && make && docker-compose up -d:<Ctrl-R>upAdemás, Ctrl-R funciona no solo en bash, sino en muchos programas que usan la biblioteca readline (y hay muchos de ellos), como Python shell, IPython, mysql shell, psql shell, irb (ruby), etc.
fuente
En su ejemplo, lo compara con un indicador de MySql. La forma en que funciona es que se inicia un proceso MySql y usted le da sus comandos a ese proceso. Como tal, ¿por qué no escribir algo similar en su idioma de elección? Aquí hay un ejemplo simple en C ++:
Tenga en cuenta que acabo de escribir eso de memoria y que no lo comprobé con un compilador. Puede haber errores de sintaxis triviales.
fuente
Para cosas básicas, puedes hacer:
Salir con ctrl + c
fuente
;after do conduce abash: syntax error near unexpected token: `` Segundo, laevalparte es propensa a vulnerabilidades. Por ejemplo, considere lo que sucede si escribostatus;cat /etc/passwden este pequeño shell. Ejemplo inofensivo, pero usted tiene la idea de lo que puede suceder. Puede simplificar eso enwhile IFS= read -r -p "git> " gitcmd; do [ "x$gitcmd" != "x" ] && git "$gitcmd";doneEsto, por supuesto, no es a prueba de balas, pero 1, es más simple y 2, evita la ejecución de comandos no git (en virtud de comillas dobles). No es ideal, solo un poco mejorsystemo\!al principio al menos. Cuando la suposición podría ser que esta "réplica"gitsolo ejecuta comandos, de hecho permite más que eso.evalno es la mejor idea para ejecutar comandos, especialmente cuando se trata de una entrada controlada por el usuario.do. ¡Gracias! re: seguridad: Esto obviamente no está destinado a ser distribuido como una aplicación separada. Simplemente ingrese su.bash_profilesi no le gusta escribir git. No me preocupa demasiado que sea "inseguro". Si pegas cosas en tu bash que no entiendes (incluido este script en línea), lo pasarás mal. Me gusta esto porque es simple, fácil de escribir y fácil de leer, y fácil de mejorar.Cuando utilicé Windows 7 con Conemu, agregué lo siguiente a mi script de inicio del entorno de desarrollo:
Con esto, podría usar el
gcomando en lugar de escribirgit. La última vez que probé con Windows 10 y Conemu, no funcionó, creo que hay un error, pero vale la pena intentarlo.fuente
Use un editor de corchetes, es fácil usar su código y comandos git, también tiene muchas características.
En la esquina superior derecha, el segundo ícono binocular se usa para instalar extensiones.
Busque la extensión
brackets gitcomo la imagen de arriba e instálela.Una vez más, en la esquina superior derecha, aparecerá el cuarto icono, así que solo haga clic y vea los cambios como en la imagen de arriba.
Si desea instalar corchetes, use los siguientes comandos:
Para obtener más información, puede leer: Cómo instalar Brackets Code Editor en Ubuntu y Linux Mint en Ubuntupit .
fuente