Git bajo Windows: ¿MSYS o Cygwin?

7 minutos de lectura

Git bajo Windows ¿MSYS o Cygwin
joce

Planeo migrar mis proyectos a git, y actualmente me pregunto cuál es la mejor y/o la opción más estable en Windows.

Por lo que deduzco, básicamente tengo 2.5 opciones:

  1. MSYSgit
  2. meterse debajo Cygwin
  3. (también conocido como 2.5) MSYSgit desde un indicador de Cygwin (dado que Cygwin git ya está instalado).

Nota: En mi opinión, Cygwin en sí mismo es una gran ventaja, ya que puede tener acceso a prácticamente todas las herramientas de línea de comandos * nix, mientras que con MSYSgit bash, solo tiene acceso a un subconjunto bastante pequeño de estas herramientas.

Ante eso, ¿qué opción sugerirías?

Git bajo Windows ¿MSYS o Cygwin
VonC

Editar (2 años más después: octubre de 2014)

johannes schindelin recién explicado (octubre de 2014) que msysgit está eliminado:

ahora tenemos un SDK ligero de Git para Windows – que es esencialmente un sistema MinGW/MSys estándar administrado a través del administrador de paquetes mingw-get.

Decidimos eliminar gradualmente el nombre “msysGit” (así como el GitHub org del mismo nombre) y trabajar en Git para Windows (con el correspondiente organización de GitHub)y usando el nombre “Git para Windows” para el instalador dirigido a “usuarios finales” y “Git para SDK de Windows” para el entorno de desarrollo dirigido a desarrolladores de Git para Windows).


Editar (3 años después: abril de 2012)

MsysGit (ahora en GitHub) es el camino a seguir si desea un inicio rápido y liviano en el mundo de Git: descomprima el archivo, inicie git-cmd.bat o git-bash.bat y listo
Su última versión (1.7.10, abril de 2012) ahora incluye soporte para UTF-8, también incluido en GitExtension. No olvide configurar su autocrlf aunque a falso.

Si realmente se está perdiendo todos los demás comandos de Unix, no los paquetes con msysgit, simplemente descargue una versión de GoW (Gnu en Windows)acertadamente llamado “La alternativa ligera a Cygwin”.
Quiero decir: 130 comando unixs…

Cygwin debería ser una solución de respaldo solo para ciertos casos, como la velocidad de transferencia de grande Repositorios de Git, como se menciona a continuación por incrementor en su respuesta.


Junio ​​2012: si quieres interactuar con GitHubahora tienes http://windows.github.com (ver también “Diseñando GitHub para Windows“).
No solo configurará las claves ssh por usted (y agregará la clave pública generada a su perfil de GitHub), sino que también instalará, para todas las operaciones de git, un… MsysGit.


Respuesta original (abril de 2009)

No tengo ningún problema con la última versión de MsysGit:
Uso la opción 2, lo que significa que solo agrego el directorio git\bin a la variable de entorno PATH, pero sin anular algunas herramientas integradas de Windows.

Logré definir herramientas externas como Notepad++ y WinMerge (o DiffMerge)

Ejecuté con éxito scripts como svn2git porque, desde MsysGit1.6.2+, incluye el ‘git svncomando.

Y finalmente espero MsysGit1.6.2.3 para ello. incluirá finalmente ‘git filter-branchcomando! (una versión lenta de filter-branch, pero aún así).

Para el comando Unix, prefiero instalar un paquete GnuWin32 coreutils y usarlo solo cuando lo necesito.

Entonces, en general, no uso la capa Cygwin y logré ejecutar Git muy bien en su versión MsysGit basada en Windows.

  • También uso p4merge, que es bastante bueno. He leído que hay problemas con los nombres de archivo git y unicode.

    – Benjol

    31 de mayo de 2010 a las 8:33

  • Gracias por vincular a la pregunta de configuración de core.editor. (Traté de usar Notepad ++ con interruptores de línea de comando como -nosession y -multiInst)

    – mbx

    15 de marzo de 2011 a las 8:28

  • Esta respuesta realmente no responde por qué uno usaría uno sobre el otro. Hay mejores respuestas debajo de la OMI

    – Sebastián Martín

    12 de abril de 2012 a las 14:56

  • @SebastienMartin, deberías mencionarlo al OP (Joce) en ese caso. De lo contrario, no se le notificará la mejor respuesta que debe seleccionar.

    – VoC

    12 de abril de 2012 a las 15:07

  • @SebastienMartin He actualizado esta respuesta anterior con información más actual.

    – VoC

    13 de abril de 2012 a las 7:08

Si. Vieja pregunta. Nueva respuesta:

Hemos estado usando MSYSgit durante aproximadamente 2 años en una gran implementación. La velocidad de las transferencias desde un servidor de repositorio git local se ha limitado a menos de 5 MiB/s. Una investigación anterior sobre el problema indicó que el problema era que los desarrolladores de MSYS estaban en Windows XP y Windows 7, lo que limitaba la seguridad de las conexiones desde el símbolo del sistema/bash shell. Esto no parece ser, de hecho, el problema.

yo descubrí Publicación en el blog de Darrell Mozingo y probé un clon de un repositorio grande (muchos GiB) usando solo una instalación de Cygwin. Las velocidades de transferencia estaban en el rango de 30 MiB/s. El problema es que MSYSgit usa un antiguo binario OpenSSH de 2007.

Con este fin, hasta que eso se solucione, ahora recomiendo un cambio a Cygwin (aunque la versión de git está un poco atrasada). También descubrí que Cygwin es más estable y es menos probable que Perl se quede sin memoria.

  • Parece que MinGW está usando OpenSSH 5.4 que es de 2010

    – Zombo

    24 de abril de 2012 a las 6:47


Git bajo Windows ¿MSYS o Cygwin
evan

He incursionado en el uso de las versiones MSYS y Cygwin de git y, para ser realmente honesto, no encontré ninguna experiencia especialmente buena. Simplemente no creo que git esté realmente listo para Windows todavía.

Dicho esto, un problema que encontré con la versión MSYS es que convertiría los finales de línea en sus archivos (no binarios) del estilo UNIX (salto de línea) al estilo DOS (retorno de carro/salto de línea). Puede considerar esto como un error o una característica, pero no hay forma de cambiar el comportamiento que pude encontrar. (EDITAR: Establecer la variable de configuración core.autocrlf para false. Gracias Brian.)

OTOH, la versión MSYS de git tiene alguna funcionalidad GUI que no está disponible en la versión cygwin a menos que desee instalar y ejecutar un servidor X completo. (Gracias Joce por confirmar esto).

Mi impresión es que la versión MSYS es más popular, aunque eso puede deberse a que no necesitas instalar un ecosistema cygwin para usarla. (Y estoy de acuerdo, cygwin es extremadamente útil).

Personalmente, iría con cualquiera Bazar o Mercurialcualquiera de los cuales tiene mejor soporte para Windows IMO.

  • Bazaar también fue mi solución a la cuestión de Git en Windows. je.

    – Cazador de instancias

    24 de abril de 2009 a las 3:00

  • Puede desactivar la traducción de final de línea. Solo necesita establecer core.autocrlf en falso.

    –Brian Campbell

    24 de abril de 2009 a las 3:12

  • Actualmente estamos revisando nuestras opciones para elegir DCVS. Mercurial está en la lista. Sin embargo, el costo de la ramificación, especialmente para proyectos muy grandes, es bastante desalentador. Cygwin dist viene con una interfaz gráfica de usuario (a costa de ejecutar un servidor X). Sin embargo, no estoy completamente seguro de cuánto valor agrega.

    – joce

    24 de abril de 2009 a las 3:44

  • Estoy usando la versión msys y no encuentro ningún problema.

    – Ikke

    24 de abril de 2009 a las 7:02

  • Creo que la última versión de msys le pide que configure cómo se manejan los finales de línea cuando lo instala.

    – Ken Liu

    12 de septiembre de 2009 a las 17:14

Tanto Cygwin como Msys Git funcionan bastante bien para casos de uso normales. Si desea utilizar scripts como git-svn, Cygwin es una mejor opción. Como un antiguo usuario de Windows que finalmente saltó a Linux, definitivamente puedo decir que Cygwin es una gran ayuda y vale la pena tenerlo en sí mismo.

Sin embargo, el contexto es importante; que proyectos son estos ¿Por quién son utilizados? Etc

También probé ambos mundos (CygWin y MSysgit), mi experiencia también es que hay algunas deficiencias en MSysgit bash. No se pudo ejecutar git stash con éxito mientras Cygwin lo manejó con gracia en el mismo repositorio de git.

Sin embargo, aún no se ha realizado un análisis profundo…

1646745316 401 Git bajo Windows ¿MSYS o Cygwin
tigraína

Actualmente uso Msysgit junto con TortoiseGit.

La interfaz de usuario de MsysGit no es realmente de mi agrado, así que uso una herramienta familiar como TortoiseGit y cuando trabajo en la línea de comandos (la mayoría de las veces), uso el binario git de Msysgit

1646745316 6 Git bajo Windows ¿MSYS o Cygwin
Konstantin Tenzin

Yo recomendaría msysgit. especialmente si se usa con Extensiones Git: proporciona una manera fácil de configurar el entorno: herramientas de editor/diff/merge, y permite realizar operaciones avanzadas de git desde la interfaz de usuario.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad