ncurses cliente git para Linux

Estoy buscando un cliente en modo texto para git, idealmente algo como Midnight Commander (así que si hay algún "Gitnight Commander", eso es todo).

Requisitos

  • modo texto, por lo que también funciona sobre un shell SSH
  • se ejecuta en Linux (Debian)
  • ofrece un nCurses como texto-GUI que el usuario puede navegar con el teclado
  • muestra (y permite navegar) el historial de confirmaciones, la estructura de árbol, etc.
  • permite al menos acciones básicas como culpar y diferir
  • uso intuitivo
  • gratis (como en "cerveza gratis" y en "libertad de expresión"; es decir, FOSS)

Muy preferido

  • disponible a través del repositorio estándar de Debian
  • bien mantenido y actualizado

Principalmente necesito esto para navegar por los repositorios de git en un host remoto, por lo que "solo lectura" está perfectamente bien. Si va más allá de eso, bueno, no puede doler mientras no termine con "hinchado". Debe ser fácil de usar.

Respuestas (3)

Lo que se acerca mucho a mis necesidades es tig : una interfaz en modo texto que usa ncurses.

tig tig
tig: confirmaciones de navegación, visualización de diferencias (fuente: tig ; haga clic en las imágenes para ver variantes más grandes)

Como escribí: cerca (pero sin cigarro). Definitivamente se ajusta a mis necesidades básicas (todos los requisitos enumerados e incluso la parte "muy preferida"), y es lo que uso por ahora. Pero la parte del "uso intuitivo" no está del todo completa (bueno, una vez que te acostumbres a los atajos podrás usarlo intuitivamente, pero hasta entonces…). No se cumple la condición de "Gitnight Commander": no hay "modo de ayuda" para mostrar las claves que uno necesita, por ejemplo. Así que todavía estoy abierto a recomendaciones alternativas.

De acuerdo con tig : hla tecla activa el archivo help mode.

perezoso

Lazygit (escrito en Go usando la biblioteca gocui ) se adapta a todas mis necesidades. Es simple, intuitivo para el usuario que no conoce Vim o Emacs y hace el trabajo.

Características notables:

  • agregar archivos fácilmente -a
  • staging archivos uno por uno ( space) o en masa ( a)
  • confirmar archivos ( c) y firmar confirmaciones usando PGP
  • resolver conflictos de fusión (interactivamente) -m
  • echa un vistazo fácilmente a las sucursales recientes -a
  • desplazarse por los registros/diferencias de sucursales/commits/stash
  • Empuje rápido ( P) y tirando ( p)
  • aplastar ( s) y renombrar confirmaciones ( R)
  • guardar cambios ( S)

vista previa animada lazygit tui

grv

Para ver los repositorios de Git, existe el Visor de repositorios de Git con controles de teclado similares a Vim.

  • Las confirmaciones y referencias se pueden filtrar mediante un lenguaje de consulta.
  • Los cambios en el repositorio se capturan al monitorear el sistema de archivos, lo que permite que la interfaz de usuario se actualice automáticamente.
  • Organizado como pestañas y divisiones. Se pueden crear pestañas y divisiones personalizadas usando cualquier combinación de vistas.
  • Me gustan las combinaciones de teclas de forma predeterminada, las combinaciones de teclas se pueden personalizar.
  • Se pueden crear temas personalizados.
  • Soporte para ratón.
  • Comprometer gráfico.

captura de pantalla grv

Buenas elecciones, gracias y +1! Los investigará. Acabo de echar un vistazo rápido a grv (ya que ofrece un solo binario enlazado estáticamente para descargar), se ve bastante impresionante :)

Trabajo con muchas sucursales todo el tiempo, así que estaba buscando formas de pagar sucursales seleccionando en lugar de escribir el nombre de la sucursal. No encontré una solución para eso, así que escribí un simple código de Python que lo hace. Aquí está: https://gist.github.com/yyk/9735d4df2b3c7dd0ea0d35affbb8c77e

¡Bienvenido a Recomendaciones de software! ¿Puedo preguntar cómo cumple eso con los requisitos enumerados? Parece que esto solo ofrece una forma maldita de seleccionar una rama (para lo cual uso git autocompletar). No es de eso de lo que se trataba entonces la pregunta.