git gui para linux que es como TortoiseGit

Quiero un programa similar a tortoisegit en Linux que pueda hacer lo siguiente:

  • Aparece un cuadro de diálogo si hago clic con el botón derecho en una carpeta o un archivo en una vista de árbol del sistema de archivos y elijo un elemento de menú en el menú contextual resultante. Si abro un cuadro de diálogo de confirmación, quiero ver una lista de todos los cambios y todos los archivos sin preparar. Deben poder ordenarse con respecto al tiempo de modificación en orden descendente. Cada archivo debe tener una casilla de verificación para poder elegir qué archivo incluir en una confirmación. Si hago doble clic en un archivo, obtengo la vista de diferencias de los cambios para ese archivo.
  • Las vistas de diferencias de los archivos de texto consisten en una vista de lado a lado con "suyo" y "mío", con una lista completa en cada lado, marcando líneas que se eliminarán o agregarán. Un "canalón" entre las dos vistas de texto visualiza qué líneas en la vista izquierda se corresponden con las líneas en la vista derecha. Si hay un conflicto, el medianil lo mostrará marcando una parte como roja. Las vistas de texto se desplazan hacia abajo hasta el primer cambio cuando aparece la vista de diferencias. Una pulsación de tecla llevará al usuario a la siguiente diferencia. En esta vista, el usuario puede optar por deshacer una adición o una eliminación haciendo clic en las áreas que están marcadas como cambios. El texto también se puede ingresar libremente en la vista derecha (la mía).
  • Tener "restaurar después de confirmar", lo que significa que puedo tomar una instantánea de un archivo marcándolo como "restaurar después de confirmar" en el cuadro de diálogo de confirmación. Luego, en la vista de diferencias, hago clic en algunas áreas modificadas para deshacer algunos de los cambios, pero después de la confirmación, el archivo se restaura al contenido de la instantánea, por lo que la próxima vez que confirme el archivo, puedo confirmar los cambios que hice. no cometer la vez anterior.

Nota: he probado gitkraken antes, y una de las desventajas es que tiene cuentas. ¿Por qué querría tener una cuenta de cliente de git? La visualización es realmente genial, pero no hay vistas del sistema de archivos, no hay casillas de verificación para los archivos modificados, parece ordenar solo el nombre del archivo, no el tiempo de modificación, la vista de diferencias usa la sintaxis de diferencias en lugar de una vista de lado a lado. No he encontrado la función "restaurar después de confirmar".

Hay otra característica poco apreciada de TortoiseGit que (AFAIK) nada más puede hacer, ver el historial de confirmación de una rama que no está actualmente desprotegida. Sé que podría volver a clonar el repositorio, pagar y luego abrir un inicio de sesión en un directorio y otro inicio de sesión en otro directorio, pero es muy conveniente poder hacer clic en una rama diferente para ver algo sin necesidad de reemplazar el rama en la que estoy o clonar un nuevo directorio.

Respuestas (1)

Además de dominar la CLI de git bash como sugirió reddit , probablemente valga la pena echarle un vistazo a GitKraken (GK).

Personalmente cambié a Visual Studio Code con un par de extensiones ( 1 , 2 , 3 ). GK es simplemente una exageración para mí, ya que principalmente administro mis propios pequeños proyectos. A modo de referencia, trabajo aproximadamente el 75 % del tiempo en Windows y el 25 % en Manjaro, por lo que mi respuesta puede ser algo sesgada.

He probado gitkraken antes, y una de las desventajas es que tiene cuentas. ¿Por qué querría tener una cuenta de cliente de git? La visualización es realmente genial, pero no hay vistas del sistema de archivos, no hay casillas de verificación para los archivos modificados, parece ordenar solo el nombre del archivo, no el tiempo de modificación, la vista de diferencias usa la sintaxis de diferencias en lugar de una vista de lado a lado. No he encontrado la función "restaurar después de confirmar".
@AndersLindén es cierto, su requisito de una cuenta es ridículo, a pesar de que también aceptan cuentas de GitHub (lo que plantea otras preguntas). Desafortunadamente, no conozco ningún otro cliente para Linux que se acerque más a la funcionalidad de TortoiseGit que no sea GK. Parece que la gente está contenta con la funcionalidad de git bash.
No conozco una forma ingeniosa de usar la CLI para 1) comparar cambios entre diferentes ramas, rápidamente (VSCode tampoco puede hacer esto, y ninguna interfaz de usuario que he visto puede excepto TG), 2) localizar una confirmación entre decenas de miles (potencialmente hace años) rápidamente y obtener una diferencia entre dos confirmaciones que podrían estar separadas por cien confirmaciones (tendría que configurar la fuente de mi consola en 8 o algo así) Al igual que el OP, me gustan bastante los cambios de icono en Explorer, es bueno navegar por las carpetas y buscar archivos agregados accidentalmente o archivos modificados. Más conveniente que git status.
Además, no todo en la CLI es maravilloso, git checkout -b <branch name> origin/<branch name>es un diseño de CLI un poco torpe, git checkout <some file>revertir los cambios no es tan bueno para mí como usar una interfaz de usuario, incluso si uso la finalización de pestañas y escribo muy rápido, especialmente si quiero revertir un montón de archivos . También tengo que buscar el comando para cambiar la URL remota cada vez, es git remote set-url origin <new url>. Siempre pienso que es git set origino git remote set origino alguna otra variante como esa.
GitKraken ahora quiere mucho dinero para cualquier cosa que no sean proyectos públicos de GitHub, incluso para proyectos locales :(