2012-04-20 25 views
8

tengo un problema extraño. Estoy usando TortoiseGIT (Win7) y mis repositorios se colocan en un servidor vritual (Debian), donde estoy usando gitolite y claves SSH.Tire no funciona - TortoiseGIT/Windows 7/GIT en Debian + gitolite

puedo clone el repositorio a mi PC, puedo correr Fetch, Push, Commit, Sync .. todo, pero cuando se trata de Pull los cambios desde un servidor Pushed por otro contribuyente, aparece el siguiente error:

git.exe pull -v --progress  "origin" 
fatal: 'pull' appears to be a git command, but we were not 
able to execute it. Maybe git-pull is broken? 
git did not exit cleanly (exit code 128) 

No entiendo, por qué solo el comando pull no funciona ... gracias por cualquier ayuda.

Puedo hacer un clon del repositorio, con los cambios aportados ... pero no puedo Pull los cambios en el repositorio creado en mi PC.

Respuesta

1

El mensaje de error está muy vinculada a Git, y viene de help.c:

static const char bad_interpreter_advice[] = 
    N_("'%s' appears to be a git command, but we were not\n" 
    "able to execute it. Maybe git-%s is broken?"); 

que es similar a issue 40 (interfaz gráfica de usuario de otro, aquí terminal-ide).

En ese caso, se debió a la instalación de Git remoto, que era incompleta

(Comments 3 of issue 19)

git-fusión también le faltaba a instalar, se puede fijar con

$> ln -s git git-merge 

en system/bin/

La resolución podría no ser exactamente lo mismo en su caso, pero podría estar relacionado con una instalación defectuosa Git.

+0

gracias por su respuesta.lo único que hice en mi servidor virtual fue la actualización de componentes (tal vez ayudó). ahora está funcionando bien. No sé cuál fue el problema, pero realmente aprecio tu ayuda. Guardaré tu respuesta para el futuro. – arnie

2

Desinstalar el antiguo Git y volver a instalar la última compilación corrigió este problema para mí.

Aquí hay un enlace a los instaladores Link to get installers

Mi mensaje de error exacto estaba

C:\Program Files (x86)\Git/libexec/git-core\git-pull: line 304: exec: git-merge: not found 
fatal: 'pull' appears to be a git command, but we were not 
able to execute it. Maybe git-pull is broken? 
13

me encontré con este mismo problema después de cambiar el ejecutable sh.exe Git Bash estar siempre ejecutar como administrador (a resolver otro problema). Luego dejó a git sin poder acceder a él bajo ciertos escenarios y causó varias "¿Tal vez git- * está roto?" errores Quizás esto podría ayudar a alguien ...

+0

¡No puedo agradecerle lo suficiente! Esa fue una solución no muy obvia, su respuesta probablemente me ahorró horas. Incluso la reinstalación de msysgit no ayudó, al parecer, Windows estaba firmemente unido a esa configuración, incluso si el ejecutable se eliminó. – sundar

+0

Supongo que este mensaje de error podría tener muchos padres, pero tu respuesta lo resolvió por mí. Solo quiero asegurarme de que esta respuesta capte un poco de atención para aquellos que cayeron en la misma trampa yo y los rayos solares. Además, estaba sucediendo en Git Extensions para mí, no en TortoiseGit – EatATaco

+1

+1 Esta es la respuesta. – fiberOptics

0

Veo que puede ejecutar "git fetch". Si también puedes ejecutar "git merge", ejecutar la secuencia "git fetch" seguido de "git merge" logrará lo mismo que "git pull".

Fuente: http://git-scm.com/docs/git-pull

+1

Ejecute 'git config --global merge.defaultToUpstream true' para imitar realmente el comportamiento de' git pull' –

+0

+1 Mucho más limpio – CW0lf