2011-05-15 22 views
68

¿Cuáles son los beneficios y la desventaja de utilizar extensiones de Git o TortoiseGit en un sistema operativo basado en Windows?TortoiseGit vs Git Extensions

+6

TortoiseGit es una buena opción si ya está acostumbrado a, p. TortoiseSVN. Es una extensión de shell, por lo que debe trabajar desde el Explorador de Windows. GitExtensions es una aplicación de Windows completa que puedes abrir por separado desde el Explorador de Windows; pero a veces me parece un poco "extraño", no del modo en que realmente espero que funcione una utilidad de Windows, y se cuelga y se congela mucho (al menos para mí). –

Respuesta

93

No sé GitExtensions, pero puedo compartir mi experiencia con TortoiseGit (aludido por el comentario de marc_s):

Pros:

  • excelente integración con Windows (que es una extensión de shell)
  • Casi la misma interfaz de usuario que TortoiseSVN (si ya usó TortoiseSVN, ya sabe qué esperar).

Contras:

  • Va a tener un tiempo duro comprensión de cómo utilizar git.

El problema con TortoiseGit es que las personas que trabajaron con TortoiseSVN se pensar todo va (o debe) trabajar exactamente igual que en el SVN ... y terminan en realidad nunca la comprensión de cómo trabajar con git. Como experiencia personal, la compañía donde trabajo migró de SVN a Git luego de 2 años, y cada desarrollador que usó TortoiseGit terminó sin saber realmente lo que estaba haciendo y algunas veces arruinando sus repositorios locales. Al final, lanzaron TortoiseGit y pasaron tiempo aprendiendo git "de la manera difícil" (shell, msysGit en Windows) y todos estuvieron felices desde entonces.

Conclusión: Simplemente use msysGit directamente y aprenda correctamente git. Evitará muchos dolores de cabeza en el futuro.

+9

nice cons argue +1 –

+1

Como alguien que vino para otro lado, desde el uso de extensiones de Git a tener que usar TortoiseSVN para otro proyecto, me pareció muy irritante usar TortoiseSVN. Tendía a arruinar el repositorio SVN, aunque finalmente me acostumbré. Según mi experiencia y los comentarios de Rafael, creo que definitivamente hay un desajuste de impedancia entre la forma de hacer las tortugas y el git. –

+4

Personalmente utilizo TortoiseGit para comprometer (revisar revisión) y registrar vista solamente, para otras operaciones use la línea de comando –

25

Mi empresa ha intentado ambas y ha abandonado rápidamente Tortoise Git. Se estrelló mucho más a menudo. Los codificadores afirman que Tortoise Git no es lo suficientemente capaz, pero yo no lo compruebo. Pero sí vi muchos de los accidentes yo mismo.

Los codificadores prefieren git bash, los otros usan pero odian las extensiones de git. Aunque incluso algunos de ellos, además, abren git bash. Git bash es inevitable para ver los contadores de progreso.

Git Extensions no tiene ninguna opción para mostrar los contadores de progreso durante una extracción. Entonces, con las extensiones de Git, te sientas frente a una enigmática barra sin progreso, sin saber qué pasa y si algo falló. Lo peor es una contraseña faltante o incorrecta: las extensiones de Git solo le permiten esperar para siempre, mostrando la misma barra brillante como si estuviera haciendo algo que consume mucho tiempo. Otro horror de las extensiones de Git es el aborto frecuente con "falta de memoria", al versionar muchos archivos grandes y al tirar con rebase. Después de dicho aborto, los usuarios no codificadores siempre se sienten abrumados por los problemas. Muchos archivos que no cambiaron aparecen como cambiados y el archivo de bloqueo evita que solucionen el problema, etc.

En mi opinión, ambas herramientas de GUI son inmaduras.

+7

+1 para la última frase. – mbx

+0

Como una actualización, aunque los mensajes de error aún pueden ser un poco confusos, en realidad ahora se muestran correctamente. –

+6

Extensiones de Git admite mostrar el progreso durante la extracción hace mucho tiempo. La interrupción del proceso de Git también es fija. – KindDragon

0

FECHA: 2011-08-27.

En este momento, Tortoise Git NO FUNCIONA en absoluto, y el problema en el sitio del código de Google no ha recibido atención en un mes: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1.

La casilla "Cargar masilla clave" de la ventana emergente en el primer uso de Tortoise Git para clonar un sitio (y comenzar a desarrollar) aparece atenuada. Por lo tanto, no se encuentra ninguna clave privada, y el mensaje de error es "conexión eliminada" ¡¡EXITOSO !!!!

Git Bash funciona perfectamente, aunque se basa en la consola. Y si todo el mundo habla acerca de no entender el concepto de Git cuando usa Tortoise Git, me mantendría alejado de eso basado en eso, incluso sin tener en cuenta las últimas 3 horas que pasé intentando que Tortoise Git trabaje para un desarrollador. Tendrá que aprender la consola Git o ir por el camino.

Lo tengo trabajo en 15 minutos, y yo sólo soy un hacker tratando de contratar a los programadores ;-)

PS, Eclipse tiene disponibles los tres principales repositorios 'conectores' de control de versiones y es un muy buen editor .

+4

FECHA: 2012-9-4: un año después, ¿se resolvió este problema? Digo que TortoiseGit está mejorando – linquize

13

No tengo mucha experiencia con TortoiseGit, pero instalé, y actualmente estoy usando GitExtensions v2.21.

Las mayores ventajas con el uso de GitExtensions:

  • visual visualización gráfica gitk-como de codelines y ramas, con toda la información esencial disponible en las pestañas, eliminando cualquier necesidad de trabajar con la antipática de SHA.
  • capacidad de instalar como administrador y todos los demás usuarios en la misma PC pueden usarlo como cualquier otro usuario.
  • incorporado en la integración de shell con el Explorador de Windows
  • a cabo una integración inmediata con Visual Studio (usuarios de Windows Eclipse sólo necesita msysgit, ya que tienen su propia interfaz gráfica de usuario para reemplazar la necesidad de GitExtensions)
  • instalador fácil de usar que viene preempaquetado con todas las funciones necesarias y de requisitos previos para comenzar de inmediato (SSH Client, KDiff, msysgit).
  • integración con GitHub (Tenedor, clon, tire son todos aerodinámico)

Desventajas:

documentación
  • no mantenerse al día con las nuevas características que se agregan constantemente. Por ejemplo, todavía no sé cómo usar las funciones de scripting.

Para que no olvidemos que se trata de un programa completamente gratuito, y que se nos ofrece como una opción sin condiciones, no veo el motivo de tan altas expectativas, como si fuéramos clientes pagos ? He visto algunos de los abortos y la congelación que mencionó el usuario anterior, pero creo que la mayoría de eso se ha corregido en v2.24. Muchas de las interrupciones y acciones fallidas realmente no son culpa de GitExtensions, sino más bien un síntoma de un problema sistémico fuera de GitExtensions (por ejemplo, configuración SSH mal configurada, problemas de permisos de archivos en el servidor que aloja el repositorio remoto, etc.). Por ejemplo, hubo una vez en que hice un simple empujón que causó falla y aborto. Resultó que el control remoto que estaba tratando de presionar estaba en una ruta de acceso muy larga que estaba causando problemas para el servidor Mac que alojaba el repositorio.

De todos modos, sin embargo, mi experiencia con GitExtensions ha sido bastante positiva. Encuentro que los beneficios descritos anteriormente han hecho que valga la pena aguantar abortos ocasionales y congelaciones hasta que se solucionen los errores.

18

Desea extensiones de Git por una razón importante: le muestra la vista gráfica del registro de confirmación (ver a continuación). Sin esa vista gráfica, no creo que la mayoría de las personas nuevas en git lleguen a saber lo que está sucediendo con las ramas, los commits, los rebases, los cherry picking, etc. (Sé que no lo hice).

También querrás hacer algo de tu trabajo en la línea de comandos, es tu mejor opción usar git prácticamente ya que toda la ayuda que obtengas estará basada en línea de comandos.

Dicho todo esto, también puedes usar Tortoise Git (suponiendo que funcione) ya que todos llaman a los mismos ejecutables de línea de comandos y actúan en el mismo repositorio de git.

La mayoría de los IDEs tienen soporte git también, JetBrains IDEA hace un gran trabajo al agregar listas de cambios y otras funcionalidades además.

Git Extensions log view

+6

Esta es una consideración muy importante. Debido a su herencia de CVS/SVN, TortoiseGit está orientado a archivos y directorios. Pero el propio git no lo es, está orientado a la historia, y los archivos y directorios son lo que a ese historial concierne. De hecho, cualquier herramienta de Git cuyo principal medio de acceso sea a través del menú contextual del archivo/directorio es defectuosa. Esto incluye extensiones de Git también. – Jeremy

9

Sólo para contrarrestar algunos de los comentarios anteriores:

con la expectativa correcta, TortoiseGit ofrece una excelente interfaz gráfica de usuario para trabajar con Git en Windows. No es un reemplazo de TortoiseSvn, sino una guía mejorada sobre lo que se puede lograr usando gitk + git-gui (que se puede considerar parte de la funcionalidad de núcleo de git y accesible en msysgit). Lo único malo que veo es cómo no necesitas recordar todos los comandos exactos de checkout/rebase/merge, etc., ya que es posible hacer todo eso muy cómodamente a través de la interfaz gráfica de usuario (que es el punto completo). Los problemas de masilla/ssh tienen más que ver con el soporte inferior para ssh en Windows, y no son exclusivos de TortoiseGit.

+1

También a favor de ** TortoiseGit **: 1) Es mucho más rápido en PCs antiguas sin demoras de carga de varios segundos como GE; 2) Permite editar el archivo actual en el dif-viewer predeterminado; 3) Tiene muchas más opciones en el menú contextual; 5) Tiene columnas configurables en el visor de commit; 5) Tiene en cuenta la configuración de 'autocrlf' en la GUI (es decir, no vuelve a advertir en la escena como GE); – Annarfych

+0

Solo úsalo con openssh en lugar de masilla y sé feliz –

10

No puedo hablar con las extensiones de Git porque nunca las he usado. Tuve algunos problemas con GIT puro. No se pudo integrar GVIM, por ejemplo. Tortoise Git tiene un editor integrado y una herramienta diff (que es increíble), así que es una muy buena conveniencia. Me encantaron los diagramas de ramas en el libro de Scott Chacon y esperaba que TGit tuviera un diagrama similar. Tienen una herramienta para mostrar las sucursales, pero no es tan buena como la del libro.

Una cosa a tener en cuenta es que, dado que TGit es solo un caparazón en la parte superior de GIT, no hay ningún problema al mezclar los dos métodos. Utilizo TGit para casi todo, pero me meto en GIT para comandos que son incómodos o que simplemente no entiendo bien en TGit. Pero incluso si planea usar TGit, sigue siendo importante, como se mencionó anteriormente, comprender primero los conceptos básicos de GIT. Leí los primeros, digamos, tres capítulos del libro de Chacon (disponible de forma gratuita en línea en http://progit.org/book/ o por compra en Amazon). Si eres como yo, es posible que quieras leerlos varias veces para dejar que el paradigma se hunda. No es tan complicado, pero es muy diferente de los anteriores VCS.

TGit nunca se estrelló en mí, como lo ha hecho para algunos de los otros revisores, pero luego mis repos han sido pequeños. Comió mis comentarios de compromiso en más de una ocasión, lo que podría haber sido un error del usuario. Dado que puede volver atrás y volver a editar los comentarios, esto fue solo una molestia y vale la pena la conveniencia de tener una GUI, con ventanas que muestran una gran cantidad de información de un vistazo.

+0

Solo quiero comentar que he tenido la misma experiencia. Use TGit excepto cuando sea más fácil usar bash para operaciones menos típicas. TGit tiene un gran registro, gran diff integrado, y ahora en 2016 es sólido. – Raj

5

rápido, fácil de compilación, personalización y ampliación de edificios, GitExtensions es mejor (C#) que TortoiseGit (Visual C++ MFC)

Para un transporte, GitExtensions es mejor (.NET en Windows/mono en Linux/Mac) que TortoiseGit (Win32/64 solamente)

para utilizar iconos de sobreimpresión en el Explorador, utilice TortoiseGit

para la ejecución de algunas características, TortoiseGit es mejor porque llama biblioteca estática/dinámica para recuperar el resultado desde el repositorio, mientras que GitExtensions solo invoca la línea de comando git.exe que tiene una sobrecarga más grande.

migren de TortoiseSVN, TortoiseGit será más familiarizado con que GitExtensions

+1

No necesita una edición profesional de Visual Studio para compilar GitExtensions, pero necesita TortoiseGit – linquize

+1

Se requiere edición profesional si desea construir la extensión de shell de GitExtensions. Las piezas principales se compilan con Express Edition, – linquize

+0

TortoiseGit llama a libgit2 y, por lo tanto, es ** MUCHO ** más rápido (mayúsculas y negrita intencional) –

7

utilizo GitExtensions. No he usado TortoiseGit pero a uno de nuestros desarrolladores le encanta y se niega a usar GitExtensions. Su razonamiento es 1) Es familiar; 2) Tiene una gran integración con Windows Explorer.

Uso GitExtensions que tienden a utilizar la integración con el Explorador de Windows para sólo tres cosas:

1) Para crear un nuevo repositorio local (elemento del menú contextual Git Init aquí, que es en realidad un Git de comandos de Windows; GitExtensions sienta encima de Git para Windows);

2) Para abrir la GUI de Git Extensions (la ventana de exploración);

3) Para clonar un repositorio remoto en un repositorio local (elemento de menú contextual Extensiones de Git> Clonar).

Para prácticamente todo lo demás, solo tengo la GUI de GitExtensions y trabajo desde allí.

Los desarrolladores de GitExtensions afirman que casi cualquier comando se puede ejecutar desde la GUI. Esto no es del todo cierto, pero creo que solo necesito ingresar a la interfaz de línea de comando una o dos veces al mes para tareas complejas.

En algunos casos, la GUI simplifica las tareas complejas al ocultar la complejidad de los comandos Git subyacentes. Esto a veces implica combinar varios comandos de Git en una sola acción. Por ejemplo, la creación de submódulos donde la GUI combina la adición de un submódulo, la inicialización y la actualización en una sola acción. En otro caso, la GUI simplifica una tarea al proporcionar un comando que carece de Git: eliminar un submódulo (en Git debe editar manualmente varios archivos como .gitmodules y .git/config para eliminar un submódulo). Me interesaría saber si TortoiseGit simplifica las tareas complejas de manera similar.

GitExtensions también tiene una integración de Visual Studio bastante básica. No sé si TortoiseGit lo hace. Hay un proveedor de control de fuente de Git por separado para Visual Studio 2008 y 2010 que proporciona una integración de Visual Studio mucho más extensa. Sin embargo, después de haber instalado el proveedor de control de fuente Git, nunca lo uso. La única integración de GitExtensions que uso desde Visual Studio está en la barra de herramientas, para abrir la GUI de GitExtensions con el repositorio apropiado. Trabajaré con Visual Studio en un monitor y GitExtensions en el otro.

Desde al menos la versión 2.32 GitExtensions muestra la cantidad de archivos no asignados en su barra de herramientas. Anteriormente utilicé 2.24 que no tenía esta característica y es muy útil. Proporciona comentarios instantáneos sobre si hay cambios no confirmados o no.