¿Qué es un buen cliente gráfico de Git para Windows apto para novatos?

Personalmente, solo instalaría Cygwin y continuaría con las herramientas habituales de shell * nix, pero necesito hacer una recomendación de software a algunos clientes que necesitan algo un poco más amigable para los novatos.

La situación es que varios clientes han desarrollado sitios web del tipo HTML en su mayoría estático, pero el servidor en el que necesitan implementar no tiene disponible la colección habitual de protocolos de la década de 1990 (por ejemplo, sin FTP ). De hecho, no hay acceso a ninguna interfaz gráfica. La implementación se maneja a través de Git. Los cambios deben enviarse a un repositorio remoto al que solo se puede acceder a través del inicio de sesión con clave SSH. Cualquier compromiso con la rama maestra impulsada por la clave autorizada desencadena un script de enlace que implementa el sitio en los servidores de producción.

Estoy buscando sugerir un cliente Git para Windows que:

  • hace que sea relativamente simple de configurar e inicializar...
    • …uno o más repositorios locales.
    • …un solo control remoto git+ssh.
    • …autenticación usando un par de claves RSA (la generación de esto sería una ventaja).
  • tiene una interfaz simple donde un flujo de trabajo básico de compromiso y envío es fácil de lograr sin comprender las complejidades del control de versiones distribuidas.

Hay una instancia de GitLab disponible para cada cliente que tiene un proyecto por dominio y hace que agregar su clave pública sea bastante fácil. También proporciona las URL clonadas/remotas para cada proyecto y hace que sea bastante fácil verificar cuál es el estado del repositorio remoto.

Se preferiría el código abierto, pero cualquier software gratuito de buena reputación sería aceptable. ¿A qué software de cliente debo señalarlos?

Editar: la mayoría de las sugerencias hasta la fecha parecen centrarse en los extremos completos de toda la funcionalidad de Git. Estoy buscando algo más reducido que solo cubra lo básico y que sea más adecuado para una tarea específica que para correr con los perros grandes. Estoy pensando en el principio KISS aquí para las personas que no usan el control de versiones para nada más y solo quieren "cargar" sus sitios web.

Tenga en cuenta que hice una pregunta similar para OSX , pero específicamente quiero herramientas que sean familiares y fáciles de dominar. La multiplataforma estaría bien, pero tengo la idea de que la mejor solución para novatos será algo nativo para cada plataforma, así que tenlo en cuenta al responder.
No estoy seguro de que esto sea lo suficientemente completo para una respuesta: solo he usado PortableGit en Windows. Fue mi primer uso de Git ("migré" desde SVN) y funcionó muy bien: un juego de niños para instalar. Información completa de la suite de Git para Windows . FWIW.
Realmente me gustaría ver los votos a favor y en contra :D
@ManuelSchneid3r +74/-0 en el momento de esta publicación. Las respuestas son +58/-2, +48/-3, +34/-0, +12/-0, +8/-1, +2/-0, ordenadas por votos.
Acabo de unirme a este sitio SO, por lo que aún no puedo responder, pero aquí hay una oferta bastante nueva de Axosoft: gitkraken.com Parece ser una de esas aplicaciones modernas creadas por Node y aún no admite submódulos, pero hasta ahora sorprende a SourceTree por ofrecer funciones potentes de una manera simple.
También acabo de unirme a este sitio SO, podría agregar que para todas las personas a las que les gustan los IDE, Visual Studio 2015 (incluso la edición gratuita) tiene un soporte increíble para Git. Tiene archivos agregados/editados/eliminados fáciles de administrar; herramienta de combinación integrada; configuración sencilla No es compatible con SSH, pero aparte de eso, es una de las mejores herramientas para Git en Windows.

Respuestas (11)

No hay nada como TortoiseGit para principiantes.

  • Se integra con el Explorador de Windows (sin nueva interfaz de usuario para aprender)
  • Código abierto (GPL)
  • Configurar/iniciar nuevo repositorio local:

Configurar/iniciar nuevo repositorio local

  • Las funciones básicas se encuentran en la parte superior del menú contextual (Sync, Commit, Push y Pull):

TortugaGit

Esto es muy recomendable.
@Jbaruch, lea esta meta publicación y edite su respuesta en consecuencia.
@Olli, encuentro mi respuesta bastante en línea con las instrucciones en esa publicación. Declaro explícitamente por qué este producto coincide con la solicitud, destaco las características relevantes y expreso mi opinión al respecto. ¿Qué falta?
@Jbaruch, ¿qué tan fácil es inicializar un nuevo repositorio local? ¿Un solo control remoto git + ssh? ¿autenticación? ¿Es de código abierto? Hay requisitos específicos establecidos en la pregunta que no aborda.
@Olli, llevémoslo a meta , tengo algunas ideas sobre cómo funciona este sitio.
@Olli agregó algunas cosas.
Todavía no creo que califique como respuesta de alta calidad. Sin embargo, está comenzando a cumplir con los requisitos más básicos. Más citas de esa meta publicación vinculada: "También debe hablar sobre cualquier peculiaridad potencial que se le ocurra, e incluso las cosas que descubrió que son un inconveniente del producto. En resumen, comparta su experiencia con algo, no simplemente su conocimiento de que existe".
Aquí vamos de nuevo. No uso esa herramienta ATM. Por lo tanto, no conozco ninguna peculiaridad, problema, inconveniente, etc. No tengo ninguna experiencia relevante con él. ¿Debería eliminar mi respuesta ahora (buena respuesta, bien explicada, brindando información valiosa y relevante)? NP, de verdad. Si solo esperas nada menos que perfecto, no me cuentes. Prefiero el bien existente a la perfección inexistente.
Si no tiene ninguna experiencia relevante con él, ¿quizás no debería recomendarlo ? En mi opinión, debería mejorar esta respuesta o eliminarla y agregar un comentario a la pregunta.
¿Eliminar la única respuesta relevante y buena? Ese es un consejo increíble. Este sitio va a lugares con esta actitud, eso es seguro.
TortoiseGit es tan simple como Git. Si alguien más lo configura por usted, todo lo que necesita hacer para confirmar los cambios es hacer clic derecho en el archivo (o carpeta) en el Explorador y seleccionar "Git Commit".
No recomendaría las herramientas Tortoise a un principiante porque son demasiado básicas. No hay GUI que les diga lo que está pasando. Creo que esta herramienta es más bien para usuarios avanzados que saben qué esperar cuando ejecutan un comando git.
Intenté esto después de leer esta recomendación, pero personalmente me pareció demasiado frustrante aprender en 5 minutos, así que descargué SourceTree y lo encontré mucho más fácil de usar... principalmente porque hay una interfaz. Estoy de acuerdo con el comentario de TT
"Se integra con el Explorador de Windows" Qué asco, qué asco, qué asco. ¿Hay una versión portátil independiente?
Si bien TortoiseGit es una herramienta poderosa y la integración de shell es buena, no ganará ningún premio por su usabilidad. No es como si tuvieras una interfaz optimizada para la mayoría de los comandos de git, hay diferentes ventanas y herramientas para todo y algunas están hechas para sádicos, estoy seguro. En mi opinión, no cumple con los criterios para un 'buen cliente gráfico Git amigable para novatos para Windows' como pide el OP ...
Personalmente prefiero no usar Tortoise GIT. Si bien Tortoise SVN es una herramienta maravillosa de SVN, Tortoise GIT toma prestado demasiado de Tortoise SVN, conserva una gran cantidad de terminología y flujo de trabajo de SVN por igual. Es un poco difícil o poco claro hacer las cosas "a la manera GIT". Por ejemplo, uno nunca sabría qué significa "Sincronizar" en Tortoise GIT, porque no existe tal comando nativo. Por otro lado, si hacer las cosas "a la manera GIT" no importa y la mayoría de los desarrolladores provienen del reino SVN, pero decidieron usar GIT por cualquier motivo. Tortuga GIT funciona.
Habiendo pasado años usando TortoiseHg, pensé que TortoiseGit ofrecería una experiencia similar. Equivocado. Si bien podría hacer básicamente cualquier cosa por Mercurial en "Hg Workbench" a través de una única interfaz de usuario unificada, TortoiseGit está totalmente fragmentado. No hay una "ventana central", solo muchos paneles inconexos que se sienten incompletos, inconsistentes entre sí y confusos. En pocas palabras, debe conocer los comandos de git antes de poder usar TortoiseGit, mientras que puede usar TortoiseHG durante años y nunca tocar la línea de comando. Por esa razón, considero que TortoiseGit es una mala herramienta.
@RogerSanders - Este es un gran comentario. Estoy en una situación similar: usé TortoiseHg de manera bastante productiva durante mucho tiempo, pero sigo siendo un novato total con respecto a Mercurial sin procesar o el control de versiones de línea de comandos en general. Puedo aceptar que Git ha "ganado" (ver Bitbucket, por ejemplo) y, por lo tanto, estoy buscando el equivalente Git de TortoiseHg. Decepcionante que TortoiseGit no esté a la altura de los estándares de la "franquicia Tortoise".

Me mudé de Github para Windows y luego Git Extensions a SmartGit y lo recomiendo. Este es el por qué-

  1. Multiplataforma (hecho en Java)
  2. Muy fácil de configurar y utilizar. Si tiene experiencia con clientes de git antes, no tardará un minuto en ponerse en marcha.
  3. Portátil
  4. Interfaz de usuario simple y limpia. La interfaz principal solo muestra los archivos modificados y los botones grandes Commit, Merge, Push y Pull.

    SmartGit

Software comercial pero gratuito para uso privado.

Para principiantes de git o usuarios que no son de git, el único problema será configurar las claves SSH . Una vez que haya hecho eso y haya clonado su primer repositorio, será sencillo y nunca tendrá que abrir la consola.

Esta pregunta es muy específica para las personas que no tienen experiencia con git (o vcs) y no planean tener ninguna. ¿Podría comentar cómo funcionaría esto para ese caso de uso? Casi parece que algo anterior en su cadena podría ser mejor. ¿Qué es "Extensiones de Git"?
@Caleb He editado la respuesta. Git Extensions puede ser fácil de configurar primero debido a los complementos integrados para muchos servicios, pero para la última parte de "administrar el repositorio", prefiero SmartGit porque es más simple. +es portatil
Usé SmartGit como mi primer cliente de git y es fácil de usar con solo una ligera curva de aprendizaje. Se lo recomendaría a cualquiera.
SmartGit es realmente bueno, tanto para principiantes como para usuarios más experimentados. Puede tener una buena idea visual de lo que sucede y simplificar la mayoría de las tareas cotidianas.
También usé SmartGit como mi primera GUI de Git, cuando no tenía absolutamente ningún conocimiento de Git y aun así logré usarlo. Dicho esto, me considero más un usuario avanzado.
El único problema es que admite BitBucket solo por SSH. Me gustaría que fuera compatible con BitBucket a través de HTTPS. ¿Algún otro cliente portátil?
@Drazick Recientemente agregaron soporte para el transporte HTTPS :)
@RamRachum, ¿En qué versión?
No estoy seguro, posiblemente 6 o 6.5. Su registro de cambios está incompleto.
Este software contiene virus detectado por virutstotal virustotal.com/en/file/…
no es gratis, es una versión de prueba
pero JAVA. No no no.
¿Java? ¿Esto es una broma? Escribir una vez arrasar por todas partes!
Estoy totalmente de acuerdo. SmartGit es probablemente el mejor cliente de control de versiones simple que existe. Tiene prácticamente todas las funciones que podría desear en una GUI, pero sigue siendo bastante fácil de usar si no necesita ninguna de las funciones avanzadas. Además, el software Java es excelente siempre y cuando no seas tú quien lo escriba. Excepto por ese asunto de Swing. Es tan feo.

Estoy usando Atlassian SourceTree y me gusta mucho.

Aquí está el taladro:

  • Gratis (no pensamiento de código abierto AFAIK)
  • Rico en funciones: casi todas las funciones de Git están ahí (no de GitHub, sin embargo, por ejemplo, no encontré una manera de cambiar la base de una bifurcación de GitHub. Es factible usando los comandos ordinarios de Git, agregando control remoto, etc., pero no fuera de la caja)
  • Soporta GitFlow
  • Buena interfaz de usuario:

    captura de pantalla

NOTA: esta captura de pantalla es de una versión mucho más antigua. La interfaz de usuario de la versión más nueva es más simple.

En pocas palabras: lo encuentro casi perfecto y lo uso para todas las necesidades que no están cubiertas dentro de mi IDE.

Eso parece MUY complejo, demasiados botones. No quiero "características ricas" tanto como "características escasas". Esto puede ser genial para alguien que entendió la ramificación y los árboles diferenciales y todas esas cosas buenas, pero no para un novato que en realidad no planea aprender git. Necesito algo que pase por alto las complejidades de incluso hacer una puesta en escena básica antes de una confirmación.
Entiendo. ¿Debo agregar otro o eliminar este para poner uno en su lugar?
Puedo ver algún punto en dejarlo como una advertencia para otros sobre lo que no es una buena opción para esta pregunta, pero (con suerte) va a terminar en la parte baja de la pila y veo que quiero que se elimine más tarde. . Supongo que eso dependería de si pensó que era una respuesta buena/válida a esta pregunta (su otra entrada parece haber entendido mejor el problema).
¡Finalmente, alguien más que usa Sourcetree!
SourceTree es, con mucho, el mejor, pero no tienen una versión de Linux. Parece intimidante al principio, pero en realidad no lo es en absoluto. Muy simple de usar.
Usé SourceTree pero me mudé a SmartGit. SourceTress fue agradable, pero la interfaz me pareció engorrosa. Preferencia personal, seguro, pero encuentro que la interfaz es más poderosa en SmartGit. SourceTree sigue siendo bastante bueno, pero no es mi preferencia.
Acaban de actualizar la interfaz de SourceTree, lo que la hizo un poco menos voluminosa. Yo personalmente lo disfruto mucho. Era un principiante total con todo el asunto de Git y solo me llevó unas pocas horas sentirme lo suficientemente cómodo gracias a este cliente.
@Caleb parece más complicado en esa captura de pantalla que será su caso de uso. Recomiendo encarecidamente al menos profundizar un poco en git si eres colaborador. La ignorancia no es excusa. Sourcetree 'simplemente funciona' y se ve bien mientras lo hace.
Siempre tengo algunos problemas de rendimiento. Es una herramienta realmente lenta. Todo mi equipo tiene la misma opinión.
Ojalá tuvieran una versión portátil.
No es nada complejo... Lo aprendí en unos minutos, después de tener experiencias frustrantes con otros clientes. Smart Git en realidad se estrelló justo después de que me preguntó si estaba bien enviar información sobre fallas, lol. Este es un bloqueo durante la ejecución, por lo que ni siquiera pudo acceder a la pantalla principal. SourceTree es excelente, excepto por un ligero congelamiento al hacer cosas con el repositorio mío que tiene muchos archivos.
GIT en sí viene con características que cualquier usuario debería aprender y comprender. "disperso" y "simple" son buenas características, pero en el caso de SourceTree necesita saber lo que está haciendo. Los comentarios sobre "lento" son repetidos por mí. Si comprende lo que está sucediendo, entonces sabe por qué y cuándo esperar que sea lento, sin embargo, lo encuentro casi inaceptable junto con los constantes mensajes "oh, qué vergonzoso que SourceTree se bloquee". Una vez, un bloqueo realmente arruinó una fusión y arruinó seriamente mi compromiso, perdiendo bastante tiempo. Buscando en otras GUI...
SourceTree tiene errores y realmente no agrega ninguna capa de abstracción.
Si opta por SourceTree, quédese con la versión 1.7. 1.8 es horrible. Enlace de descarga para 1.7: downloads.atlassian.com/software/sourcetree/windows/…
SourceTree en este momento es una basura increíble (1.9.x). Es muy lento, falla a la izquierda y a la derecha, la interfaz de usuario tiene errores y no responde, y el desarrollo se centra principalmente en actualizar los íconos. Mi presión arterial sube cada vez que tengo que usarlo.

Me gusta mucho Git para Windows (msysGit) . Tiene tres 'modos': Bash (donde puede hacer todo ), menú contextual de Windows y GUI (donde puede hacer mucho menos pero diría que es muy fácil de usar).

  • hace que sea relativamente simple de configurar e inicializar: Muy fácil
    • uno o más repositorios locales: la inicialización es muy simple y puede tener tantos como desee sin conflictos.
    • un solo control remoto git+ssh: Fácil: bastante fácil de agregar más controles remotos si lo desea en algún momento en el futuro también. (vea la captura de pantalla a continuación a la que se accede mediante GitGUI->remote->add)
    • autenticación usando un par de claves RSA (la generación de esto sería una ventaja): Sí, también puede generarlo, aunque eso es solo a través de la línea cmd (vea este tutorial )
    • tiene una interfaz simple en la que es fácil lograr un flujo de trabajo básico de compromiso y envío sin comprender las complejidades del control de versiones distribuido: Sí, vea la captura de pantalla, fue mucho más fácil de aprender para mí cuando comencé a jugar con el código que RapidSVN o TortoiseSVN.

Desde cmdline puedes hacer TODO (prácticamente); la GUI tiene bastantes funciones, pero no se muestra nada complicado en la pantalla frontal (solo relacionado con la confirmación), todo lo demás está oculto en los menús.

captura de pantalla

No soy exactamente novato, pero no uso Git a diario y tuve muchos problemas con él: no pude encontrar la ventana de combinación. agregar archivos y deshacer cambios fue realmente difícil y la interfaz es complicada.

El más simple y fácil que he visto es GitHub para Windows :

Captura de pantalla de GitHub para Windows

Pero hay una advertencia : el uso con repositorios que no son de github no es intuitivo (se siente como un truco TBH) .

En mi opinión, la omisión de buscar y empujar del vocabulario daña su utilidad como herramienta que no es de github.
Es demasiado simplista. Muy pronto te darás cuenta de que no tiene suficiente funcionalidad. Por ejemplo, no encontré, ¿es compatible con Stash?
No es demasiado simplista para los novatos, que es de lo que se trataba el OP.

Puede considerar usar GitKraken . Algunas caracteristicas:

  • Gratis para uso no comercial
  • Multiplataforma (Windows, Mac, Linux)
  • Soporte de múltiples perfiles
  • Deshacer y rehacer con un clic
  • Herramienta de combinación incorporada
  • Arrastre y suelte para fusionar, reorganizar, restablecer, empujar y más
  • Gráfico de confirmación redimensionable y fácil de entender
  • Ver diferencias de imagen en la aplicación
  • Soporte de submódulos y Gitflow
  • Integrar con la cuenta de GitHub o Bitbucket

ingrese la descripción de la imagen aquí

ungit tiene un fuerte enfoque de facilidad de uso y comprensibilidad (como sugiere el nombre)

https://github.com/FredrikNoren/ungit

Instalar:

npm install -g ungit

Está basado en Node.js y ejecuta un servidor que los usuarios pueden ver en el navegador, por lo que es multiplataforma.

No estoy seguro de si administra SSH para los usuarios, pero definitivamente es algo que puedo ver que hacen.

Esta GUI me intriga. No estoy encantado de que esté construido en javascript (sesgo personal, no el fin del mundo), pero la interfaz visual parece tan a prueba de idiotas como cualquier cosa posible para Git. Hay un excelente tutorial para Ungit , pero desafortunadamente está en francés, pero vale la pena verlo solo para ver a Ungit en acción.
No me gustó que coloque un directorio "node_modules" dentro de mi repositorio con miles de archivos. ¿Por qué?
@TamásSzelei no le digas a nadie, pero en realidad no lo he probado ;-) Pero, ¿trata de manera node_modulesespecial? ¿No sucede lo mismo con otros directorios? ¿No es un .gitignoreproblema?
Eso depende de cómo lo mires. Puede gitignorehacerlo, claro, pero soy reacio a impulsar un cambio para cada usuario de este repositorio solo porque mi cliente git pone (¿partes de?) su código fuente en el repositorio. Seguramente alguien preguntaría qué diablos estoy haciendo con "node_modules" en un proyecto de C++.
@TamásSzelei ah, OK, en realidad crea archivos, pensé que solo los estaba mostrando. Informe de error entonces, y enlace a él ;-)

Me sorprende que casi nadie haya mencionado las extensiones de Git . Lo estoy usando durante muchos años y lo encuentro más fácil de usar que Tortoise Git.

Git Cola

  • multiplataforma (Linux, Windows, OSX)
  • software libre
  • GitKraken se anuncia mejor que Git Cola

ingrese la descripción de la imagen aquí

Lo uso como interfaz principal de git en Linux. Operaciones cotidianas muy fáciles de realizar

  • Comprometerse
  • Revertir la última confirmación local (cambiar descripción, agregar cambios faltantes)
  • Confirmar cambios para líneas seleccionadas (aislar cambios no relacionados)
  • Ver registro (herramienta DAG incluida)

https://git-fork.com/

Recientemente me mudé de Sourcetree a Fork . El nombre es muy difícil de buscar en Google, pero es un gran software. La característica principal para mí fue poder esconder y aplicar ciertos archivos y no solo todos los cambios locales. No es un software gratuito ($ 50), pero te avergüenza como lo hace WinZip de vez en cuando.

ingrese la descripción de la imagen aquí

Recomendé Fork mucho antes de que subiera el precio y es un buen software, pero no cumple con los requisitos específicos de esta pregunta.

Para que conste, nunca encontré nada que realmente cumpliera con todo lo que estaba buscando en esta pregunta.

Mi recomendación actual cuando un principiante necesita una GUI gratuita es GitAhead . Tiene algunas asperezas, pero se trata de la implementación más simple y limpia que he encontrado que es de código abierto. Es muy similar a Fork : le falta un poco del brillo de Fork, pero tampoco tiene precio.