¿Diferencia entre msysgit y Cygwin + git?

10 minutos de lectura

¿Diferencia entre msysgit y Cygwin git
por qué

¿Cuál es la diferencia entre msysgit y Cygwin + git?

Ahora estoy usando msysgit, pero no me gusta Git Bash (no se puede cambiar el tamaño o copiar/pegar), así que estoy pensando en cambiar a Cygwin, porque entonces podría usar menta.

¿Diferencia entre msysgit y Cygwin git
VonC

Editar 2018:

Desde mi respuesta de 2010-2012-2014, en 2015 Git para Windows usa msys2, como detallo aquí.

Obtenga más información en “¿Cómo se relacionan msys, msys2 y msysgit entre sí?”.


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),
  • usando el nombre “Git para Windows” para el instalador dirigido a “usuarios finales” y
  • usando el nombre “Git para SDK de Windows” para el entorno de desarrollo dirigido a desarrolladores de Git para Windows).

Actualización 2 años después: julio de 2012

Msysgit llegó para quedarse y, a menos que necesitar para agregue algunos cientos de MB para cygwinrealmente no necesita Cygwin para usar Git en Windows.
Y si desea acceder a GitHub, obtiene un paquete (“Git para Windows” + claves ssh registradas para usted en su cuenta de GitHub + una buena GUI) con GitHub para ventanas.

Ambas cosas Git y msysgit están en GitHub.
los msysgit.github.com página ilustra claramente la diferencia entre:

Logotipo de Git para Windows <----------> Logotipo de MsysGit

Git para Windows“: Usuarios puros de Git | “MsysGit“: para probadores, desarrolladores, mantenedores de instaladores personalizados

Ver también Preguntas frecuentes sobre msysgit:

¿Qué es esta cosa “MSys” en “MSysGit”?

MSys es un entorno para Windows que ofrece un shell de tipo Unix y un intérprete de Perl. Debido a que muchas partes de Git todavía no están programadas en C, sino que son scripts de Shell y Perl, Git para Windows necesita un entorno de este tipo.

Por lo tanto, enviamos Git para Windows con una versión mínima de MSys.

También se requiere MSys para compilar Git, ya que reutilizamos la misma configuración de tipo Unix que usa Git aguas arriba. Enviamos un entorno MSys más completo, incluido GCC, como entorno de compilación (que, por lo tanto, recibe el sobrenombre de ”msysGit”).

Compilamos Git como un puro MinGW programa, sin embargo, es decir, un programa sin dependencias de enlace en nada más que bibliotecas estándar de Windows.
Entonces, a menos que necesite usar alguna parte de Git que aún se implementa solo como scripts de shell o Perl, puede salirse con la suya ejecutando git.exe simple.


Respuesta original: junio de 2010

a/ Puede cambiar el tamaño y copiar y pegar en Git bash, como en cualquier otro Shell de Windows.

b/ Probablemente esté usando “Git para Windows”, y no msysgit. Desde la wiki:

  • msysGit es el entorno de desarrollo para compilar Git para Windows. Está completo, en el sentido de que solo necesita instalar msysGit y luego puede compilar Git. Sin instalar ningún software de terceros.
  • Git para Windows es un instalador que instala Git, y solo Git.

Es fácil ver la diferencia:

  • los instaladores de Git tienen el prefijo Git-,
  • los instaladores de msysGit tienen el prefijo msysGit-.

Otro indicador es que los instaladores de msysGit vienen en dos sabores: fullinstall y netinstall.
Además, msysGit no se instala en C:\Program Files por defecto.
Pero msysGit viene con gccel compilador GNU C.

c/ Desde MSysGitHerald10:

Recordar:

  • MinGW es realmente una capa de tiempo de compilación muy delgada sobre Microsoft Runtime; Por lo tanto, los programas MinGW son programas reales de Windows, sin concepto de rutas de estilo Unix o sutilezas POSIX como un fork() llamada.
  • MSys, por el contrario, es una versión reducida de Cygwin (una versión antigua), cuyo único propósito es proporcionar suficiente capa POSIX para ejecutar un bash.

Y eso es no siempre es bienvenido:

Cuando trabajo en Windows, no me gusta que msysGit, como su nombre indica, dependa de MSYS y de herramientas del mundo Unix. Creo que todos los programas en la distribución de Git deben convertirse en binarios compilados para una plataforma específica y no depender de intérpretes de shell o lenguajes de terceros como Tcl/Tk.

Aunque es mucho mejor que el primero. Git en Cygwin instalaciones desde 2007.

  • a) ¿Cómo puedo activar cambiar el tamaño y copiar/pegar en Git bash? b) No sé si es lo mismo, pero estoy usando msysgit.

    – por qué

    30 de junio de 2010 a las 9:38

  • @nusbit: a) como cualquier shell de Windows: ver superusuario.com/questions/92040/… o (más claro) astahost.com/info.php/Command-Prompt-Tips_t10211.html#137177 b) msysgit es el nombre del proyecto que incluye “Git para Windows” (que debe tener instalado “Git-1.7.0.2-preview20100309.exe“) y msysGit mismo (el instalador para el entorno de desarrollo de Git para Windows: msysGit-netinstall-1.7.1-preview20100612.exe).

    – VoC

    30 de junio de 2010 a las 10:30

  • a) Veo que no tienes instalado Git Bash. Porque no es como cualquier shell de Windows. No puede cambiar el tamaño es como Windows cmd u otras ventanas.

    – por qué

    30 de junio de 2010 a las 11:19

  • @nusbit: mi atajo de git bash apunta a C:\WINDOWS\system32\cmd.exe /c ""C:\Program Files\Git\bin\sh.exe" --login -i". ¿A qué se refiere su atajo de Git bash? Cuando abro esta ventana (que tiene una palabra Git vertical como logotipo), puedo hacer clic derecho en la barra de título (que tiene MINGW32:~/. en él) y ver el menú contextual habitual (Restaurar/Mover/Tamaño/Minimizar/Maximizar/Cerrar/Editar/Predeterminado/Propiedades). ¿Ves el mismo menú contextual?

    – VoC

    30 de junio de 2010 a las 11:29


  • @devdar msysgit es solo Git para Windows. Y Git no administra los permisos de los usuarios. Solo una capa de autorización (gitolite.com/gitolite/auth.html) como la lata Gitolite.

    – VoC

    4 de diciembre de 2013 a las 19:49

¿Diferencia entre msysgit y Cygwin git
bwawok

cygwin + git era la única forma de hacer que git funcionara en el pasado. Ahora que existe msysgit, no veo ninguna razón para usar cygwin.

Estoy de acuerdo en que git bash no es tan bueno… así que lo que hago es

  1. Ponga git en la ruta y use el símbolo del sistema de la ventana cuando necesite la línea de comando
  2. Tener Tortoise git instalado para cuando quiera tener una GUI para mi git

  • Para un usuario al que realmente le gustan las interfaces de línea de comandos, no creo que el símbolo del sistema de Windows sea una muy buena solución…

    – Cascabel

    29 de junio de 2010 a las 20:15

  • Esa no es una respuesta a mi pregunta sobre cuál es la diferencia entre cygwin y msysgit.

    – por qué

    30 de junio de 2010 a las 9:45

1646967076 425 ¿Diferencia entre msysgit y Cygwin git
Peter – Reincorporar a Monica

Esta es una respuesta de 2017…

La diferencia técnica fundamental es que todos los programas de cygwin dependen de cygwin1.dll; pero ese es al mismo tiempo el menos interesante para el usuario final ya que debería ser casi completamente transparente. Las principales diferencias que encontré no son tanto entre las versiones de git como entre el entorno cygwin y el entorno msys/mingw. Estas son algunas diferencias que encontré:

  • Manejo de LCA. La forma en que los cygwin más nuevos (posteriores a 2015) manejan las listas de control de acceso NTFS puede ser molesta hasta el punto de ser peligrosa. De forma predeterminada, las unidades de Windows se montan con la opción acl activa. Cygwin intenta imitar los permisos POSIX reorganizando y abusando de las entradas de ACL de una manera que puede imposibilitar el acceso a través de programas nativos de Windows. Además, es posible que el acceso a los archivos se ralentice drásticamente en instalaciones de múltiples usuarios y múltiples dominios (es decir, comerciales o institucionales) debido al acceso a la red, ya que la determinación de usuarios y permisos requiere potencialmente consultas del servidor de dominio para cada archivo.

    msys se monta con el -noacl opción por defecto. Hacer eso en cygwin también parece evitar esos problemas.

  • Velocidad. Actualmente estoy trabajando en un repositorio con 100k archivos (no preguntes). A git status con todo el contenido del disco relevante en el caché toma 4,7 segundos con cygwin y 0,4 segundos con msys git. No estoy seguro de qué parte de la capa de compatibilidad de cygwin está ralentizando las cosas: bloqueos, bifurcaciones, sistema de archivos, IPC… todos son candidatos.
  • Potencialmente nombres de archivo. No he investigado el problema, pero sospecho que un git (y las otras herramientas) dirigido a Windows (como msys git) puede manejar mejor los nombres de archivo de Windows. Bajo cygwin, uno debe convertir diligentemente los nombres de los archivos a través de cygpath entre los dos mundos. Eso jugará un papel importante cuando los scripts, etc. interactúen con los programas de Windows.

Editar: quizás no sea obvio que con algunos ajustes menores es posible compartir configuraciones comunes para git (pero no solo para git) entre cygwin y Msys2. Si no recuerdo mal, una buena manera es configurar la variable de entorno HOME en la configuración del sistema de Windows; entonces tanto Msys2 como cygwin usarán ese directorio y, por lo tanto, los mismos archivos de puntos, entre ellos ~/.gitignore. Eso hace que cambiar entre terminales cygwin y Msys2 sea bastante sencillo (piense ~/.inputrc, ~/.bashrc, ~/.profile…).

MSysGit viene con una versión muy antigua de SSH. El rendimiento en mi sistema fue de alrededor de 10 Mbit. Si no te importan las velocidades de los clones, esto no te afecta. La solución es ejecutar Cygwin Git o reemplazar el SSH instalado en MSysGit.

La implementación de bash en msysgit es antigua. Sin embargo, uso vim cuando edito y funciona muy bien. En cuanto a cortar y pegar, a menudo recurro a SHIFT+ALT+[space], E, M o cualquiera que sean las teclas para marcar el texto que quiero. No es ideal, pero hace el trabajo lo suficientemente bien como para no cortar y pegar demasiado.

Ahora comencé a ejecutar Ubuntu en la misma máquina a través de VirtualBox. Con el modo continuo y las carpetas compartidas, puedo aprovechar un bash actualizado y un Git rápido.

No uso ninguna herramienta de interfaz gráfica de usuario para Git, excepto gitk (para gitk –all) para visualizar el historial si es necesario.

Probé cygwin y no me gustó. La solución de caja virtual es mucho mejor si msysgit no es suficiente para usted.

  • La idea con VirtualBox es buena, pero un poco laboriosa para mí. Prefiero trabajar con cygwin o msyswin.

    – por qué

    30 de junio de 2010 a las 9:40

  • ¿Por qué no simplemente conectarse a una instancia de caja virtual que se ejecuta con una carpeta compartida? Una vez configurado, no estoy seguro de qué sería tan laborioso …

    – Adam Dimitruk

    10 de noviembre de 2011 a las 19:08

1646967077 852 ¿Diferencia entre msysgit y Cygwin git
teoxilo

La versión actual de git en cygwin es 1.7.5.1, que es muy, muy actual (mayo de 2011).

No veo ninguna razón (hasta ahora) para usar otra cosa, aunque estoy considerando probar msysgit (también conocido como “Git para Windows”) (actualmente versión 1.7.4).

  • La idea con VirtualBox es buena, pero un poco laboriosa para mí. Prefiero trabajar con cygwin o msyswin.

    – por qué

    30 de junio de 2010 a las 9:40

  • ¿Por qué no simplemente conectarse a una instancia de caja virtual que se ejecuta con una carpeta compartida? Una vez configurado, no estoy seguro de qué sería tan laborioso …

    – Adam Dimitruk

    10 de noviembre de 2011 a las 19:08

1646967077 981 ¿Diferencia entre msysgit y Cygwin git
locka

Msysgit ha recibido una serie de parches para solucionar problemas específicos de Windows, como la insensibilidad a mayúsculas y minúsculas del sistema de archivos, el bloqueo de archivos, etc. Probablemente sea una mala idea usar la versión de cygwin. Si tiene cygwin en su sistema, le aconsejo no instalar git en absoluto y, preferiblemente, no compartir entornos msysgit o cygwin desde la misma RUTA.

¿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