Pregunta

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

Por lo que tengo entendido, básicamente tengo 2,5 opciones:

  1. MSYSgit
  2. git 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, al igual que con MSYSgit bash, solo tiene acceso a un subconjunto bastante pequeño de estas herramientas.

Teniendo esto en cuenta, ¿qué opción sugerirías?

¿Fue útil?

Solución

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

Johannes Schindelin acabo de explicar (Oct.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 simplemente eliminar gradualmente el nombre "msysGit" (así como el Organización GitHub del mismo nombre) y trabajar en Git para Windows (con el organización GitHub correspondiente), y utilizando el nombre "Git para Windows" para el instalador dirigido a "usuarios finales" y "Git para Windows SDK" 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:descomprimir el archivo, iniciar git-cmd.bat o git-bash.bat y ya está.
Es última versión (1.7.10, abril de 2012) ahora incluye soporte para UTF-8, también incluido en GitExtension.No olvides configurar tu autocrlf a falso aunque.

Si realmente le faltan todos los demás comandos de Unix, no paquetes con msysgit, simplemente descargue una versión de GoW (Gnu en Windows), acertadamente denominado "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 incrementador en su respuesta.


Junio ​​2012:si quieres interactuar con GitHub, ahora 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:
Yo uso el opcion 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 Bloc de notas++ y WinMerge (o DiffMerge)

Ejecuté scripts con éxito como svn2git porque, desde MsysGit1.6.2+, incluye el 'git svn' dominio.

Y finalmente espero con ansias MsysGit1.6.2.3. incluirá finalmente 'git filter-branch' dominio!(una versión lenta de filter-branch, pero aún así).

Para el comando Unix, prefiero instalar un Paquete coreutils de GnuWin32, y usarlos sólo cuando los necesito.

Considerándolo todo, no uso la capa Cygwin y logré ejecutar Git muy bien en su versión MsysGit basada en Windows.

Otros consejos

Sí. cuestión de edad. Nueva respuesta:

Hemos estado utilizando msysgit por cerca de 2 años en un gran despliegue. La velocidad de las transferencias desde un servidor de repositorio Git local, se han limitado a menos de 5 MiB / s. A principios de la investigación en el tema indicó que el problema era con los desarrolladores Msys estar en Windows XP y Windows 7 seguridad de limitar las conexiones de línea de comandos shell / bash. Esto no parece ser, de hecho, el problema.

Darrell de Mozingo publicar y probado un clon de un acuerdo de recompra grande (muchas GIB) usando solamente un Cygwin instalar. Las velocidades de transferencia estaban en el rango 30 MiB / s. El problema es que msysgit utiliza una antigüedad binario OpenSSH desde 2007.

Con este fin, hasta que se fija, ahora estoy recomendando un cambio de Cygwin (a pesar de que la versión de Git es un poco detrás). También encontré Cygwin sea más estable y menos probable para Perl para ejecutar fuera de la memoria.

He incursionado con el uso de las versiones Msys y Cygwin de Git, y ser realmente honesto, no he encontrado bien la experiencia especialmente bueno. Yo simplemente no creo que Git es realmente listo para ventanas todavía.

Una vez dicho esto, un problema que encontré con la versión MSYS es que sería convertir los finales de línea en sus (no binario) archivos de tipo UNIX (línea de alimentación) al estilo DOS (retorno de carro / línea- alimentar). Usted puede considerar esto un error o de una pieza, pero no hay manera de cambiar el comportamiento que he podido encontrar. (EDIT:.. Establecer la variable de configuración core.autocrlf a false Gracias Brian)

otoh, la versión MSYS de Git tiene algunas funciones interfaz gráfica de usuario que no está disponible en la versión cygwin a menos que desee instalar y ejecutar un servidor X conjunto. (Gracias Joce para confirmar esto.)

Mi impresión es que la versión MSYS es más popular, aunque esto puede ser debido a que no es necesario instalar un ecosistema cygwin para usarlo. (Y estoy de acuerdo, cygwin es extremadamente útil.)

En lo personal, me gustaría ir con cualquiera Bazar o Mercurial , cualquiera de los cuales tiene un mejor soporte para las ventanas de la OMI.

Tanto Cygwin y Msys Git funcionan bastante bien para los casos de uso normales. Si desea utilizar guiones como git-svn, Cygwin es una mejor apuesta. Como un viejo usuarios de Windows que finalmente abandonó el barco a Linux, puedo decir sin duda que Cygwin es una gran ayuda y vale la pena tener en sí mismo.

El contexto es importante, sin embargo; qué proyectos es esto? ¿Quiénes son utilizados por? Etc.

También he probado los dos mundos (Cygwin y msysgit), mi experiencia es que también hay algunas deficiencias en la fiesta msysgit. No se puede ejecutar git escondite con éxito, mientras que Cygwin manejó con gracia en el mismo repositorio git.

Sin profundo análisis hecho todavía, aunque ...

Actualmente uso msysgit junto con TortoiseGit.

El msysgit interfaz de usuario no es realmente de mi gusto, así que uso como una herramienta familiar TortoiseGit y cuando se trabaja en la línea de comandos (la mayor parte del tiempo), utilizo el binario de git msysgit

Me recomiendo msysgit. Especialmente si se utiliza con Git Extensiones : se proporciona manera fácil de configurar el entorno: Editor / diff / fusionar herramientas, y permite hacer operaciones git avanzadas de la interfaz de usuario.

Me he encontrado errores graves en la aplicación de cygwin MSys: algunos comandos, especialmente el rebase, eran bastante propensa al fracaso. Cygwin de era mucho más estable para mí.

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

He utilizado tanto Cygwin Git y msysgit con Windows. Se recomienda usar Cygwin + Git. Cygwin 1.7 (actualmente en fase beta) se dirige a un matiz importante (al menos para mí) durante el uso de interfaz gráfica de usuario git y gitk. Las versiones anteriores de Cygwin utilizan para abrir las ventanas de 10s cmd cada vez que hago algo en git-gui o gitk. Esto se ha abordado en el 1,7. poderosa caparazón de cygwin trae una gran cantidad de los objetos valiosos de terminal de Linux.

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

problema de permisos: unos archivos creados de forma nativa en las ventanas de modo 755 que consiguió convertir a 644 durante el uso de msysgit tenían. Esto se presentaba como archivos modificados. Un registro debe solucionar este problema.

CRLF: El CRLF todo es elusivo como siempre crea problemas en Windows. Msysgit podría reportar archivos modificado. Esto se puede solucionar mediante la selección de "Dejar finales de línea sin cambios" (olvidó el texto exacto), mientras que la instalación de msysgit.

Daemon: ¿Y si Sigo encontrando difícil de demonio de configuración de Git en msysgit

.

Nueva respuesta a una vieja pregunta ...

Estoy usando Git 1.7.3 desde un Windows 7 cmd Shell, y funciona muy bien. Yo uso una combinación de línea de comandos y GUI git git, y ambos han estado trabajando muy bien por meses. Tuvimos retorno de carro / avance de línea cuestiones, exacerbado cuando añadimos los desarrolladores de Mac para el equipo, pero éstos se resolvieron con la ...

core.autocrlf=true
core.safecrlf=false

No diciendo que no debería utilizar un * nix-y concha, sólo que no es necesario.

Tengo mis reservas hacia CygWin porque yo sólo quiero Git y no cualquiera de las otras herramientas que quiere Cygwin de la verdad. Normalmente desea que el equipo de windows para trabajar como un equipo con windows y CygWin quiere dar una palmada en algo completamente diferente. Palmadas en la funcionalidad * nix sólo por las patadas que no se vaya.

La cosa es que, si alguna vez quiero trabajar con * nix como la línea de comandos, me gustaría ir a mi máquina Linux y el trabajo en ese equipo en su lugar. ordenadores virtuales y noreferrer escritorios remotos trabajo como un encanto en la actualidad y es lo suficientemente accesible para los desarrolladores.

Realmente es necesario que haya una razón legítima para que usted pueda estar usando CygWin. Si es sólo para el uso de git me gustaría sugerir que utilice msysgit lugar, que es mi preferencia . Funciona muy bien con las herramientas gitk y git-gui las que se combinan. He estado trabajando tanto en Eclipse y Visual Studio usando msysgit y funciona como un encanto.

Lo único que estoy esperando ahora es un clon tortuga completamente de trabajo para Git .

Hay un escenario en Windows en el que simplemente Tienes para usar Git a través de Cygwin: Esto es cuando se desea utilizar Git contra un servidor SVN, que espera versiones de cliente SVN superior a 1,5. Existen SVN ganchos que se compromete bloque cuando no hay argumento 'mergeinfo' pre-commit - y el argumento 'mergeinfo' es por defecto en el SVN sólo a partir de la versión 1.5. El problema con msysGit es, que se trata de construir una versión más antigua contra SVN (1,4 0.6), por lo que no puede comprometerse con éxito en este caso. pero es posible con Git de Cygwin, ya que está construido contra las nuevas versiones SVN.

Si lo que desea es hacer acciones simples como push / pull / ramificación podría intentar SourceTree de Atlasian. Una interfaz de usuario muy sencilla y clara para el comando de Git. Sin embargo, tiene venida corto.

Si es necesario utilizar la herramienta de línea de comandos de Git, acaba de obtener el Git para la herramienta de ventanas. Debe ser lo suficientemente, a menos que se empieza a observar en secuencias de comandos bash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top