2009-03-08 11 views
39

Esto está relacionado con otro question I asked recientemente.msysgit en Windows, ¿qué debo saber si hay alguno?

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

  1. nunca cambian el ambiente de ventanas. Con esta opción, debes 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 de Windows incluidas. ¡Compañero stackoverflow -ian Gabe Moothart told me in a comment que esta opción hará que algunas operaciones de git fallen! ¿Cuáles son estas operaciones? ¿Debería preocuparme por ellos?

  3. Igual que 2 pero anula algunas herramientas del sistema predeterminadas. ¿Cuáles son estas herramientas? ¿Qué partes de windows dependen de ellos? y ¿esto duele en la práctica?

Se me ha ocurrido otro problema, no relacionado con el sistema PATH.

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

Respuesta

43

Se obtiene bash independientemente de la opción que elija, las últimas opciones sólo tiene que añadir métodos para el uso de Git fuera de ella.

Para las últimas opciones, msysgit suma de Windows construye de utilidades de Linux comunes a PATH. Esto incluye find, kill y sort, así como cp, ls, rm, y unos 20-30 otros.

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

No es una gran prueba si sabes cuál usarás, pero cualquier aplicación desarrollada esperando una y obteniendo la otra seguramente dará un ataque.


Para evitar el conflicto, sin dejar de tener trabajo Git como se esperaba, se puede crear un archivo por lotes simple que ajusta PATH sólo para la sesión. (Por ejemplo, readygit.bat)

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

Ajuste C:\Git\bin en 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 manera segura C:\Git\bin de PATH de su sistema, eliminando cualquier confusión para las aplicaciones de Windows sin confundir a Git.

Actualmente uso una secuencia de comandos similar con GnuWin aplicaciones, incluyendo find.

+2

Alternativamente, agregue 'export PATH = $ PATH:/c/mingw/bin:/c/mingw/msys/1.0/bin' a'/etc/bash_profile' de Git Bash para obtener acceso a MinGW desde el shell de msysGit. – rpjohnst

3

En Windows (este es un problema menor en otros sistemas, en mi muy humilde opinión ...), debe ser MUY consciente de los problemas 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á utilizando una versión muy antigua de Git), autocrlf está habilitado de forma predeterminada, a diferencia de todas las demás instalaciones de git.

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

Además, Windows es insensible a mayúsculas y minúsculas pero/a veces/conserva el caso - ¡tenlo en cuenta! (Esto no confunde a git necesariamente, pero puede confundir y confunde al usuario del git repo).

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 a la ruta ...

Si no me equivoco, usted debería ser capaz de garantizar sólo que el binario principal Git está en el camino - y que a continuación binaria debe tener cuidado en incluir otro componentes de Git ... Pero no he probado esto.

+2

AFAIK, Windows siempre conserva las mayúsculas y minúsculas. Cuando un nombre es mayúsculas, Windows Explorer lo muestra en minúscula, pero el archivo se conserva en mayúsculas. – configurator

+0

Eso está mal, pero sería útil si encuentras artículos de apoyo. :) – Arafangion

3

El instalador de MSYS Git sugiere la opción 2 si tiene la intención de ejecutar git desde un indicador de cygwin. El entorno cygwin asegura que las dependencias git estén en su RUTA. Si eliges esta opción pero luego invocas git desde el símbolo del sistema de Windows, no se encontrarán todas las utilidades de línea de comandos de unix-y en las que git se basa. IIRC, el propio git se implementa parcialmente como scripts bash. No sé qué operaciones fallarán, pero no creo que git pueda usarse de esta manera.

No tengo una lista de las herramientas del sistema que la opción 3 anule (el instalador menciona 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 Unix de ese nombre, no al exe que se envía con Windows.No daña las ventanas de ninguna manera.

Sólo tiene que ejecutar con tijeras y elija la opción 3 :-)

+0

Esto afectaría non-batch-script-ninjas si usan alguna herramienta que viene con un script por lotes. He usado demasiadas herramientas como esta, que probablemente fallarían. – configurator

9

Es posible que desee tener en cuenta que:

  • Todos los comandos git no son todavía allí. En MSysGit1.6.2 principios de marzo de 2009:. Archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, enviar e-mail, y la cáscara)

  • Hasta MSysGit1.6.2, git-svn era not there (it is now).
    El problema era que git-svn necesitaba los enlaces perl de subversion, y solo puedes construirlos como módulos dinámicamente cargables. Y MSysGit tenía una versión perl que no admitía módulos dinámicamente cargables.

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

0

Cuando usa 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á otro.git carpeta debajo, cuando finalmente piense buscar allí) Busque la carpeta con sus fuentes, y - ¡simplemente elija esa carpeta! El directorio del repositorio ".get" se creará PARA TI.

Luego puede ver los archivos en los cambios no registrados y al hacer clic en los íconos de las páginas junto a los nombres de los archivos, muévalos a los cambios ordenados.

Y, definitivamente, se ejecuta con tijeras y seleccione la opción 3. Nadie utiliza kill, ordenar o encontrar más desde la línea de comandos de Windows.

+0

hmm, esto no tiene nada que ver con msysgit en Windows (como esto también se aplica a Linux). Estaba preguntando sobre las formas en que podría interferir con otras herramientas del sistema de Windows o estropearlas. – hasen

Cuestiones relacionadas