update para mac for commands windows git version-control msysgit

para - git windows xp



msysgit en windows: ¿qué debo tener en cuenta, si es que tengo alguno? (5)

Esto está relacionado con otra pregunta que hice recientemente.

Al instalar msysgit, el instalador presenta 3 opciones relacionadas con la ruta del sistema:

  1. Nunca cambie el entorno de windows. Con esta opción, tienes que usar el shell "bash" para trabajar con git.

  2. Agregue el directorio git / bin a la variable de entorno PATH, pero sin anular algunas herramientas integradas de Windows. El compañero de stackoverflow-ian Gabe Moothart me dijo en un comentario que esta opción hará que algunas operaciones de git fallen. ¿Cuáles son estas operaciones? ¿Debo preocuparme por ellos?

  3. Igual que 2, pero anula algunas herramientas predeterminadas del sistema. ¿Cuáles son estas herramientas? ¿Qué partes de las ventanas dependen de ellas? y esto dolerá en la práctica?

Otro tema ha venido a mi mente, no relacionado con el sistema PATH.

¿Qué sucede si tengo enlaces simbólicos y enlaces duros dentro del directorio de mi proyecto? ¿Git sabe cómo tratar con estos? o, ¿sufrirá una recursión infinita, por ejemplo, la estructura del directorio fue tal que alguna carpeta fue en realidad un enlace simbólico a uno de sus padres?


Cuando utiliza la GUI de Windows en Windows y crea su primer repositorio, no escriba el nombre ".git" para el directorio del repositorio. (Que luego creará y luego creará otra carpeta .git debajo de ella, cuando finalmente piense mirar allí) Busque la carpeta con sus fuentes y, ¡simplemente elija esa carpeta! El directorio del repositorio ".get" se creará PARA usted.

Luego ve los archivos en los cambios sin etapas y, al hacer clic en los pequeños íconos de página junto a los nombres de archivos, muévalos a los cambios por etapas.

Y, definitivamente, ejecute con tijeras y seleccione la opción 3. Nadie usa matar, ordenar o buscar más desde la línea de comandos.


El instalador de MSYS Git sugiere la opción 2 si pretende ejecutar git desde un indicador de cygwin. El entorno cygwin garantiza que las dependencias de git estén en su PATH. Si elige esta opción pero luego invoca git desde un símbolo del sistema de Windows, no se encontrarán todas las utilidades de línea de comandos de unix-y en las que se basa git. IIRC, git se implementa parcialmente como scripts de bash. No sé qué operaciones fallarán, pero no creo que git sea utilizable de esta manera.

No tengo una lista de las herramientas del sistema que reemplaza la opción 3 (el instalador menciona a find.exe), pero esto solo te afectaría si eres un ninja de script por lotes. En la línea de comandos, find ahora se referirá a la utilidad de Unix de ese nombre, no al archivo ejecutable que se envía con Windows. No daña las ventanas de ninguna manera.

Simplemente ejecute con tijeras y elija la opción 3 :-)


En Windows (esto es un problema menor en otros sistemas, en mi humilde opinión ...), debe estar MUY consciente de los problemas de crlf, y tenga en cuenta que (a menos que hayan cambiado esto en la última versión de Git, que creo que pueden tener (o si estás usando una versión muy antigua de Git), autocrlf está habilitado de forma predeterminada, a diferencia de todas las otras instalaciones de git.

También tenga en cuenta que, a menos que use la última versión de msysgit, esta semana pronto saldrá a la venta si recuerdo correctamente de la lista de correo, el tamaño de su repositorio no puede ser mayor a 2GB, total.

Además, Windows es extrañamente insensible a las mayúsculas y minúsculas pero / a veces / conserva las mayúsculas y minúsculas. (Esto no confunde git necesariamente, pero puede confundir y confunde al usuario del repositorio de git).

Finalmente, git es sustancialmente más lento en Windows que en Linux, aunque es (en mi experiencia limitada) más rápido que las alternativas.

Ahora, con respecto al camino ...

A menos que me equivoque, deberías poder asegurarte de que el binario principal de git esté en el camino, y ese binario debería encargarse de hacer referencia a los otros componentes de git ... Pero no he probado esto.


Es posible que desee tener en cuenta que:

  • Todos los comandos git no están todavía allí. En MSysGit1.6.2 a principios de marzo de 2009: archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, enviar correo electrónico y shell.)

  • Hasta que MSysGit1.6.2, git-svn no estaba allí ( ahora está ).
    El problema era que git-svn necesitaba los enlaces Perl de Subversion, y solo puedes compilarlos como módulos cargables dinámicamente. Y MSysGit tenía una versión de Perl que no admitía módulos cargables dinámicamente.

  • Todos los detalles sobre MSysGit se explican mejor en su wiki de MSysGitHerald Github


Usted obtiene bash independientemente de la opción que elija, las últimas opciones simplemente agregan métodos para usar Git fuera de ella.

Para las últimas opciones, msysgit agrega compilaciones de Windows de utilidades comunes de Linux a PATH . Esto incluye find , kill y sort , así como cp , ls , rm y unos 20-30 más.

El problema con los primeros 3 (y similares) es que existen en ambos sistemas operativos y funcionan de manera diferente en cada uno.

No es una gran experiencia si sabe cuál va a usar, pero cualquier aplicación desarrollada que espere una y obtenga la otra seguramente le dará un buen golpe.

Para evitar el conflicto, mientras Git sigue funcionando como se espera, puede crear un script por lotes simple que ajuste PATH solo para la sesión. (por ejemplo, readygit.bat )

@echo off setlocal set PATH=C:/Git/bin;%PATH% cmd

Ajuste C:/Git/bin consecuencia. Pero, simplemente ejecuta esto y usa Git dentro del cmd .

Con esto, puede usar la opción de instalación 3 y eliminar de forma segura C:/Git/bin de la PATH de su sistema, eliminando cualquier confusión en las aplicaciones de Windows sin confundir a Git.

Actualmente utilizo un script similar con GnuWin aplicaciones de GnuWin , incluido find .