Después de actualizar a OS x 10.10 Yosemite Beta, la ejecución de git pull devuelve el siguiente error:

/Biblioteca/Desarrollador/CommandLineTools/usr/libexec/git-core/git-pull: línea 11: git-sh-instalación: No tal archivo o directorio

He comprobado la que se hace referencia git-core directorio y la git-sh-setup.sh es allí.

Otros comandos de git están trabajando exactamente como se esperaba

  • Estoy teniendo este problema, excepto con git stash. Te dejaré saber si puedo encontrar una solución
  • Fue sólo tener este problema con zsh…git parecía funcionar bien cuando se ejecuta desde bash. Zsh relacionados?
  • Este fue un error en iTerm2 con zsh. iTerm2 fija en su última versión (v1.0.0.20140629)
InformationsquelleAutor meghaphone | 2014-06-03

10 Comentarios

  1. 100

    Creo que la solución más limpia para esto por ahora es cambiar el orden inicial en su iTerm sesión

    /usr/bin/login -f <your user name>
    

    Esto soluciona el problema para mí.

    Un mayor punto de datos para el análisis de la cuestión: parece que en 10.10, varias copias de la variable de entorno PATH existen y subshells parece preferir la segunda copia.

    Puede reproducir este con el lanzamiento de todo el cacao de la aplicación en la consola lanzada por iTerm. Usted obtendrá una advertencia de que se parece a esto:

    2014-06-04 19:23:09.859 gitx[14676:362580] *** -[NSProcessInfo environment]: Warning: duplicate definition for key 'PATH' found in environment -- subsequent definitions are ignored.  The first definition was '(the path I have configured in my shell)', the ignored definition is '/usr/bin:/bin:/usr/sbin:/sbin'.
    

    Yo creo que esto es un problema en 10.10 y no iTerm, pero algo iTerm está haciendo está provocando que se manifiesta a sí mismo (esto no sucede en el Terminal.app)

    Actualización: Esto es causado por iTerm haciendo «interesante» cosas para el medio ambiente. Actualización a la versión oficial de iTerm 2.0 para hacer que este problema desaparezca.

    • Esta debe ser la respuesta correcta, increíble revisión. Sin embargo, me puse el comando para /usr/bin/login -f $USER, solo así puedo tener el mismo perfil en varias cuentas 🙂
    • También, mucho más fácil la prueba es que se acaba de ejecutar env: antes de iniciar la sesión en la muestra 2 variables de RUTA de acceso. Hace una declaración condicional fácil [[ $(env | grep -c PATH) < 2 ]] || /usr/bin/login -f $USER
    • Al parecer, bash elimina todos los duplicados de las variables de entorno. Por lo tanto, si se establece el orden a /bin/bash -c /bin/zsh se preservará otras variables de entorno, por ejemplo,$SSH_AUTH_SOCK.
    • respuesta hizo el truco para mí, muchas gracias! He añadido el -l bandera a /usr/bin/login a mantener el directorio de la última sesión, es decir,/usr/bin/login -lf <your user name>.
    • Esta solucionado el problema para mí en la forma más limpia hasta el momento. Muchas gracias!
    • Este fija git. Pero cada vez que necesita usar ssh con mi id_rsa.pub, me pidieron que escriba la frase de contraseña. Yo no tenía que hacer esto antes de cambiar el orden inicial, ni en la Terminal.app. Alguna idea?
    • wow. no puedo creer 10.10 borks esta tan mal. gracias por la solución. Yo estaba rascando mi cabeza durante todo el día
    • Creo que /bin/bash -c /bin/zsh es mejor que /usr/bin/login -f <your user name>, porque mantiene la codificación de caracteres. /usr/bin/login -f <your user name> perdido mi codificación y no puedo visualizar mis archivos como normal.
    • No sé cómo cambiar el «orden inicial en su iTerm sesión»? A qué te refieres en el .zshrc como?
    • Yo tenía el mismo problema. Alfa Liu solución anterior soluciona ambos problemas (git y el agente ssh).
    • +1 Gracias! Usted me salvó de esta git-problema y otro montón de cerveza-problemas!
    • Gracias @pilif, la actualización se hizo el truco!
    • gracias, estoy de acuerdo con @AlphaLiu que /bin/bash -c /bin/zsh es mejor. EDIT: en realidad, acaba de actualizar a la 20140629 iTerm2 liberación es la mejor solución.
    • La actualización a iTerm Construir 2.0.0.20141103 resuelto el problema para mí.

  2. 35

    Creo que este es un error en iTerm cuando se utiliza zsh. Deliberadamente no invocar /usr/bin/login, y no lo usan execle para borrar las variables de entorno, como debe ser.

    • Wow creo que tienes razón. He pasado horas tratando de conseguir varios Git correcciones a la obra, y resulta que la conmutación de la iTerm2 w/ zsh a Yosemite por defecto del Terminal (aún con zsh) funciona muy bien. ¿Cómo encontraste esto?
    • Bien, este es el mayor grupo específico de personas alguna vez… ¿un caso extremo.
    • sí. me siento que usted! el env RUTA de acceso es diferente de la terminal por defecto
    • que fue un muy buen análisis. Así que una buena solución es establecer el orden inicial en iTerm a /usr/bin/login -f <nombre de usuario>.
    • Otra solución es la configuración de la shell de inicio de sesión de comandos en iTerm a /bin/bash -c /bin/zsh
    • Un informe de error ha sido presentada por iTerm2 (si no es un iTerm2 error) aquí. Si en efecto es un problema con OS X 10.10 y no iTerm2, entonces es probablemente una buena idea para el uso de esta revisión y vamos a iTerm2 tiempo fuera de la siempre cambiante-y-fijación-Desarrollador vista previa de la tormenta.
    • Cambiando de login shell a command en las Preferencias > Perfil > sección General, y el uso de /bin/bash -c /bin/zah como @Sorenly ha sugerido, fijo que esta a la derecha arriba!
    • errata @JulianLloyd: /bin/bash -c /bin/zsh no /bin/bash -c /bin/zah

  3. 20

    Descarga la versión más reciente de iTerm2 fijo esto para mí!

    • Si quieres resolver sin probar que usted es un aficionado a la tecnología…, acabo de hacer esto. Gracias a Marthyn…
    • Como los comentarios de abajo, dijo, parece ser iTerm y zsh juntos que impide git tira de trabajo. Va a iTerm2 lo arregla.
    • Para aclarar @MikeHoss, iTerm2 versión 1.0.x no funciona, pero iTerm2 versión 2.0.x no. Ambos son iTerm2, pero la versión es lo que importa.
  4. 16

    Otra solución, modificar su iTerm2

    cd /Applications/iTerm.app/Contents/MacOS
    mv iTerm iTerm-bin
    
    cat > iTerm <<EOF
    #!/bin/sh
    unset PATH
    \${0}-bin
    EOF
    
    chmod +x iTerm
    

    Hecho.

    Disfrutar de su iTerm2 con Yosemite!

    • Gracias, funcionó a la perfección +1
    • iTerm2 es el problema y esta es una de las mejores soluciones para el problema. Kudos.
    • Yo estaba experimentando este problema, incluso en el público 10.10 liberación, y esta solucionado. Gracias Feng!
    • wow, muchísimas gracias!
  5. 13

    Como una temp solución que he modificado git-tire de las líneas 11, 12, y 336 a ser:

    . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup
    
    . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
    
    eval="/usr/local/Cellar/git/2.0.0/libexec/git-core/git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"
    

    Esto corrige git pull, por ahora, pero estoy seguro de que hay una solución mejor.

    • Esta es una buena solución hasta que se solucione este correctamente!
    • Yo también tuve que cambiar como 231 a . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-parse-remote
    • En caso de que sea necesario para cambiar esto, me juego hasta la mina hasta el punto de $GIT_PATH/git-sh-setup, etc.
    • Me estoy poniendo /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup: line 334: git: command not found fatal: 'pull' appears to be a git command, but we were not able to execute it. Maybe git-pull is broken? Después de aplicar esta revisión, alguien tiene una idea de qué hacer?
    • Esta es feo, pero yo tenía que ir a través de git-sh-instalación y reemplazar todos los git con /usr/local/bin/git. Hubo un par de casos de git en git pull también que tuvo que ser sustituido
  6. 3

    Aquí es una solución temporal (suponiendo Homebrew y Git 2.0.0) si usted necesita Git para trabajar antes de que un oficial de revisión que sale. Yo instalación de dos variables de shell:

    export GIT_PATH="/usr/local/Cellar/git/2.0.0/bin"
    export GIT_CORE_PATH="/usr/local/Cellar/git/2.0.0/libexec/git-core"
    

    … y luego reemplazó a instancias de git con absolutas correspondientes enlaces. Puede utilizar los siguientes Fundamentos a hacer lo mismo:

    • Reemplazar /usr/local/Bodega/git/2.0.0/libexec/git-core/git-sh-setup/ con git-sh-instalación
    • Reemplazar /usr/local/Bodega/git/2.0.0/libexec/git-core/git stash/ con git stash
    • Reemplazar /usr/local/Bodega/git/2.0.0/libexec/git-core/git pull/ con git-pull

    Este es un hack para el seguro, pero te va.

    EDICIÓN: asegúrese de que usted mira la respuesta de @pilif antes de hacer esto…

  7. 1

    Ubiquill la solución se aplica para git rebase (y, presumiblemente, lo demás funciones no funcionan) así. En ese caso, se requiere la sustitución de las líneas 47 y 48, con el siguiente *:

    . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup
    . /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n
    

    * Esta ruta de acceso se supone que tienes git instalado con homebrew, y vive dentro de /usr/local/Bodega/git/2.0.0/.

  8. 1

    Editar su git-tirar de archivo y añadir esta línea en la parte superior de la misma (justo después de que el bloque de comentario)

    PATH="$(dirname $0):$PATH"
    

    O simplemente copiar y pegar esto en tu terminal :

    ed -s $(which git-pull) <<< $'6i\nPATH="$(dirname $0):$PATH"\n.\nwq'
    

    Actualización: Como presuntos por pilif, desde el pasado iTerm2 actualización (1.0.0.20140629), git-pull ejecutar correctamente sin esta PATH anular.

    • Esta parece ser la única solución para ir un paso adelante en la configuración de mi. Después de la adición de la línea de la RUTA, me sale este error cuando intento TIRAR: git: ‘credencial de osxkeychain’ no es un comando git. Ver git ‘–help’. Alguna idea?
  9. 0

    ACTUALIZACIÓN: todavía no funciona con la versión mencionan a continuación, mi error. Git push funciona Git pull no.

    A mí me parece que el problema ha sido resuelto por Apple con Mac OS X Yosemite 10.10 (14A329r). estoy en la general de la Beta de Yosemite canal (no programador). Git push/tire funciona como se espera de nuevo sin ningún tipo de modificaciones.

    • No, estoy experimentando duplicado variables de entorno en 14A329r, por lo que no se ha resuelto sobre la que construir.
    • thx. estás en lo correcto. de alguna manera Git push funciona ahora? para mí, sino para Git pull sigue sin funcionar.

Dejar respuesta

Please enter your comment!
Please enter your name here