why please necessary git cygwin msysgit dvcs

git - please enter a commit message to explain why this merge is necessary



Git en Windows: ¿MSYS o Cygwin? (13)

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 git binary de Msysgit

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

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

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

Nota: IMO Cygwin en sí mismo es una gran ventaja, ya que puede tener acceso a casi todas las herramientas de línea de comando * nix, ya que con MSYSgit bash, solo tiene acceso a un subconjunto bastante pequeño de estas herramientas.

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


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

Johannes Schindelin acaba de explicar (octubre de 2014) que msysgit está eliminado :

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

Decidimos eliminar el nombre "msysGit" (así como también la organización GitHub del mismo nombre ) y trabajar en Git para Windows (con la organización GitHub correspondiente) y usar el nombre "Git para Windows" para el instalador. en "usuarios finales" y "Git for Windows SDK" para el entorno de desarrollo dirigido a desarrolladores de Git for Windows).

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

MsysGit (ahora en GitHub ) es el camino a seguir si quieres un inicio rápido y ligero en el mundo de Git: descomprime el archivo, git-cmd.bat o git-bash.bat y listo.
Su último lanzamiento (1.7.10, abril de 2012) ahora incluye soporte para UTF-8 , también incluido en GitExtension . autocrlf embargo, no olvides configurar tu autocrlf en falso .

Si realmente te faltan todos los otros comandos de Unix, no paquetes con msysgit, simplemente descarga un lanzamiento de GoW (Gnu en Windows) , acertadamente llamado "La alternativa ligera a Cygwin".
Quiero decir: 130 comandos de unix s ...

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

Junio ​​de 2012: si desea interactuar con GitHub , ahora tiene http://windows.github.com (consulte también " Diseñar GitHub para Windows ").
No solo configurará las claves ssh por usted (y agregará la clave pública generada a su perfil 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:
Utilizo 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 incorporadas de Windows.

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

svn2git scripts exitosos como svn2git porque, desde MsysGit1.6.2 +, incluye el comando '' git svn ''.

¡Y finalmente espero MsysGit1.6.2.3 porque incluirá finalmente el comando '' git filter-branch '' ! (una versión lenta de filter-branch, pero todavía).

Para el comando de Unix, prefiero instalar un paquete coreutils de GnuWin32 , y usarlos solo cuando los necesito.

Así que, en general, no uso Cygwin y logré ejecutar Git muy bien en su versión basada en Windows MsysGit.


Hay un escenario en Windows donde simplemente tiene que usar Git a través de Cygwin: Esto es cuando desea usar Git contra un servidor SVN, que espera versiones de cliente SVN superiores a 1.5. Existen enlaces de precompilación SVN que bloquean las confirmaciones cuando no hay un argumento ''mergeinfo'', y el argumento ''mergeinfo'' está predeterminado en SVN solo desde la versión 1.5. El problema con msysGit es que está construido contra una versión anterior de SVN (1.4.6), por lo que no puede comprometerse correctamente en este caso. Pero es posible con Cygwin''s Git, ya que está basado en versiones más nuevas de SVN.


He incursionado con el uso de las versiones MSYS y Cygwin de git, y para ser sincero, no encontré experiencia alguna especialmente buena. Simplemente no creo que git esté realmente listo para Windows aún.

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 (avance de línea) al estilo DOS (retorno de carro / avance de línea). Puede considerar esto como un error o una característica, pero no hay forma de cambiar el comportamiento que pude encontrar. (EDIT: establece la variable de configuración core.autocrlf en false . Gracias Brian).

OTOH, la versión de MSYS de git tiene alguna funcionalidad de GUI que no está disponible en la versión de 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 puede deberse a que no es necesario instalar un ecosistema cygwin para usarla. (Y estoy de acuerdo, cygwin es extremadamente útil).

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


He usado tanto Cygwin Git como Msysgit con Windows. Sugeriría usar Cygwin + Git. Cygwin 1.7 (actualmente en beta) aborda un matiz importante (al menos para mí) al usar git gui y gitk. Las versiones anteriores de Cygwin solían abrir 10s de ventanas de cmd cada vez que hago algo en git-gui o gitk. Esto ha sido abordado en 1.7. El poderoso shell de Cygwin trae muchos de los beneficios de la terminal de Linux también.

Dicho esto, Msysgit ha evolucionado bastante y es realmente útil en Windows. Me enfrenté a un par de problemas sin embargo.

Problema de permiso: algunos archivos creados originalmente en Windows tenían el modo 755 que se convirtió a 644 mientras usaba Msysgit. Esto se mostraría como archivos modificados. Un registro debe solucionar este problema.

CRLF: El CRLF todo escurridizo como siempre crea problemas en Windows. Msysgit podría informar los archivos como modificados. Esto puede solucionarse seleccionando "Dejar los finales de línea sin cambios" (se olvidó el texto exacto) al instalar Msysgit.

Daemon: Y sí, aún me resulta difícil configurar git daemon en Msysgit.


Me he encontrado con errores graves en la implementación cygwin de MSys: algunos comandos, especialmente la rebase, eran bastante propensos a fallar. Cygwin''s fue mucho más estable para mí.

Dicho esto, fue hace un mes, podría haber mejorado desde entonces.


Nueva respuesta a una vieja pregunta ...

Estoy usando git 1.7.3 desde un shell de Windows 7 y funciona de maravilla. Uso una mezcla de git command line y git gui, y ambos funcionan bien desde hace meses. Tuvimos problemas de retorno de carro / alimentación de línea, exacerbados cuando agregamos desarrolladores de Mac al equipo, pero estos se resolvieron con ...

core.autocrlf=true core.safecrlf=false

No dice que no debe usar un shell * nix-y, solo que no es necesario.


Recomendaría msysgit. Especialmente si se usa con extensiones de Git : proporciona una forma sencilla de configurar el entorno: herramientas de editor / diff / merge, y permite realizar operaciones de git avanzadas desde la interfaz de usuario.


Sí. 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. La investigación anterior sobre el problema indicó que el problema era que los desarrolladores de MSYS estaban en Windows XP y la seguridad de Windows 7 limitando las conexiones desde el símbolo del sistema / shell bash. Esto no parece ser, de hecho, el problema.

Descubrí la publicación del 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 estoy recomendando un cambio a Cygwin (aunque la versión de git está un poco retrasada). También encontré que Cygwin es más estable y menos probable que Perl se quede sin memoria.


Si solo quiere hacer acciones simples como empujar / tirar / ramificar, puede probar SourceTree de Atlasian. Una interfaz de usuario muy simple y clara para el comando Git. Sin embargo, tiene poco tiempo.

Si necesita utilizar la herramienta git de línea de comandos, simplemente obtenga la herramienta Git for windows. Debería ser suficiente, a menos que comiences a buscar en bash scripting.


También probé ambos mundos (CygWin y MSysgit), mi experiencia también es que hay algunas fallas en MSysgit bash. Incapaz de ejecutar git stash con éxito mientras Cygwin lo manejaba con gracia en el mismo git repo.

Sin embargo, todavía no se realizó un análisis profundo ...


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 que vale la pena tenerlo en sí mismo.

El contexto es importante sin embargo; ¿Qué proyectos son estos? ¿Con quién son usados? Etc.


Tengo reservas con respecto a Cygwin porque solo quiero git y ninguna de las otras herramientas que Cygwin quiere incluir. Normalmente quieres que tu computadora Windows funcione como una computadora Windows y CygWin quiere dar una bofetada a algo completamente diferente. Golpear en la funcionalidad * nix solo para las patadas no es ir.

La cuestión es que si alguna vez quiero trabajar con * nix como línea de comando, iría a mi máquina Linux y trabajaría en esa computadora. Las computadoras virtuales y los escritorios remotos funcionan hoy como un encanto y son lo suficientemente accesibles para los desarrolladores.

Realmente debe haber una razón legítima para que esté usando CygWin. Si es solo por usar git, te sugiero que utilices MSYSgit que es mi preferencia. Funciona muy bien con las herramientas gitk y git-gui que se incluyen. He estado trabajando en Eclipse y Visual Studio usando msysgit y funciona como un encanto.

Lo único que estoy esperando ahora es un clon de tortuga completamente funcional para git .