software portable manager mac for batch git cygwin msysgit

manager - github portable



Diferencia entre msysgit y Cygwin+git? (9)

Editar 2018:

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

Consulte más en " ¿Cómo se relacionan msys, msys2 y msysgit entre sí? ".

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 correspondiente GitHub org) ,
  • usando el nombre " Git para Windows " para el instalador dirigido a "usuarios finales" y
  • utilizando el nombre " Git para Windows SDK " 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 necesites agregar unos cientos de MB para cygwin , realmente no necesitas que Cygwin use Git en Windows.
Y si desea acceder a GitHub, obtendrá un paquete ("Git for Windows" + claves ssh registradas para usted en su cuenta de GitHub + una buena GUI) con GitHub para Windows .

Tanto Git como msysgit están en GitHub.
La página msysgit.github.com ilustra claramente la diferencia entre:

<---------->
" Git para Windows ": usuarios puros de Git | " MsysGit ": para probadores , desarrolladores, mantenedores de instaladores personalizados

Ver también las preguntas frecuentes de msysgit :

¿Qué es esta cosa de "MSys" en "MSysGit"?

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

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

MSys también está obligado a construir Git, ya que reutilizamos la misma configuración de tipo Unix aguas arriba que utiliza Git. Enviamos un entorno MSys más completo, incluido GCC, como entorno de compilación (que, por lo tanto, recibe el nombre de nick '''' msysGit '''').

Sin embargo, compilamos Git como un programa MinGW puro, es decir, un programa sin dependencias de enlaces en nada que no sean bibliotecas estándar de Windows.
Por lo tanto, a menos que necesite usar alguna parte de Git que todavía esté implementada solo como shell o scripts de Perl, puede ejecutar el programa plain git.exe.

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 for windows", y no msysgit. De 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 msysGit tienen el prefijo msysGit-.

Otro indicador es que los instaladores de msysGit vienen en dos formas: fullinstall y netinstall.
Además, msysGit no se instala en C:/Program Files de forma predeterminada.
Pero msysGit viene con gcc , el Compilador GNU C.

c / De MSysGitHerald10 :

Recuerda:

  • 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 ningún concepto de rutas estilo Unix o detalles de POSIX como una llamada fork() .
  • MSys, en cambio, es una versión reducida de Cygwin (una versión anterior), cuyo único propósito es proporcionar una capa POSIX suficiente para ejecutar un bash.

Y eso no siempre es bienvenido :

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

Sin embargo, es mucho mejor que las primeras instalaciones de Git on Cygwin desde 2007.

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

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


Esta es una respuesta de 2017 ...

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

  • Manejo de ACL La forma en que los cygwins más nuevos (posteriores a 2015) manejan las listas de control de acceso de NTFS puede ser molesto hasta el punto de ser peligroso. Por defecto, las unidades de Windows están montadas con la opción acl activa. Cygwin intenta imitar los permisos POSIX volviendo a mezclar y abusando de las entradas de ACL de una manera que puede imposibilitar el acceso a través de los programas nativos de Windows. Además, es posible que el acceso a archivos se ralentice drásticamente en instalaciones multiusuario de múltiples dominios (es decir, comerciales o institucionales) debido al acceso a la red, ya que la determinación del usuario y los permisos posiblemente requiera consultas del servidor de dominio para cada archivo.

    msys se monta con la opción -noacl por defecto. Hacer eso en cygwin también parece evitar esos problemas.
  • Velocidad. Actualmente estoy trabajando en un repositorio con 100k archivos (no preguntes). Un git status con todos los contenidos de disco relevantes en la memoria 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, horquillas, sistema de archivos, IPC ... todos son candidatos.
  • Potencialmente nombres de archivos. No he investigado el problema, pero sospecho que un git (y las otras herramientas) para Windows (como msys git) pueden manejar mejor los nombres de los archivos de Windows. Bajo cygwin, uno debe convertir diligentemente los nombres de archivo 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 recuerdo correctamente, una buena manera es establecer 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 el cambio entre los terminales cygwin y Msys2 sea bastante sencillo (piense ~/.inputrc , ~/.bashrc , ~/.profile ...).


Esta es una respuesta de 2018 ...

Git para Windows se basa en MSYS2 .

MSYS2 se inició con la idea de reiniciar el proyecto MSys, actualizando frecuentemente con Cygwin y manteniendo el espíritu de MSys para proporcionar una capa POSIX muy reducida, esencialmente una versión mínima de Cygwin. MSYS2 también tiene un administrador de paquetes (pacman) y mantiene esos paquetes actualizados muy bien.

..

El tiempo de ejecución de MSYS2 es un tiempo de ejecución de Cygwin ligeramente modificado que se ejecuta sobre el kernel de Windows, mientras que el tiempo de ejecución de Linux es el kernel de Linux, ejecutándose como un sistema operativo por separado.

https://github.com/git-for-windows/git/wiki

Cygwin proporciona una biblioteca en tiempo de ejecución llamada cygwin1.dll que proporciona la capa de compatibilidad POSIX donde sea necesario. La variante MSYS2 de esta biblioteca se llama msys-2.0.dll e incluye los siguientes cambios para admitir el uso de programas nativos de Windows: ¿En qué se diferencia MSYS2 de Cygwin?


La implementación de bash en msysgit es antigua. Sin embargo, uso vim cuando edito y eso funciona muy bien. En cuanto a cortar y pegar, a menudo recurro a MAYÚS + ALT + [espacio], E, M o lo que sea que sean las teclas para llegar a marcar el texto que quiero. No es ideal, pero hace el trabajo lo suficientemente bien ya que no corte y pegue demasiado.

Ahora comencé a ejecutar Ubuntu en la misma máquina a través de VirtualBox. Con el modo integrado y las carpetas compartidas, puedo aprovechar una actualización rápida y rápida de Git.

No uso herramientas GUI para Git, excepto gitk (para gitk --all) para visualizar el historial si es necesario.

He probado cygwin y no me gustó. La solución de cuadro virtual es mucho mejor si msysgit no es suficiente para usted.


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 algo más, aunque estoy considerando dar msysgit (también conocido como "Git para Windows") una prueba (actualmente versión 1.7.4).


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 clonación, entonces esto no te afecta. La solución es ejecutar Cygwin Git o reemplazar el SSH instalado en MSysGit .


Msysgit ha recibido una serie de parches para resolver problemas específicos de Windows, como la insensibilidad de las carpetas 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 que no instale git en absoluto, y preferiblemente no comparta entornos msysgit o cygwin de la misma RUTA.


cygwin + git fue la única forma de hacer que git funcione en el día. Ahora que msysgit está disponible, no veo ningún motivo para usar cygwin.

Estoy de acuerdo que git bash no es tan bueno ... entonces lo que hago es

  1. Ponga git en ruta y use el indicador de comando de ventana cuando necesito la línea de comando
  2. He torturado git para cuando quiero tener una GUI para mi git

cygwin ve sus archivos locales en formato de Windows, mientras que git-bash los ve en formato Unix. Si echas un vistazo a los archivos en git-bash y ejecutas el estado de git en un shell cygwin, git piensa que has modificado cada línea en el repositorio, si ejecutas el estado de git en el shell git-bash, solo se modifican los archivos que tocaste.