2012-04-20 9 views
8

Ich habe ein komisches Problem. Ich benutze TortoiseGIT (Win7) und meine Repositories sind auf einem virtuellen Server (Debian), wo ich gitolite und SSH-Schlüssel verwendet.Pull funktioniert nicht - TortoiseGIT/Windows 7/GIT unter Debian + gitolite

ich das Repository auf meinen PC clone kann, kann ich Fetch laufen, Push, Commit, Sync .. alles, aber wenn sie auf Pull die Änderungen vom Server Pushed von anderem Beitrag versucht, die folgende Fehlermeldung angezeigt:

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) 

Ich verstehe nicht, warum nur die pull Befehl funktioniert nicht .. danke für jede Hilfe.

Ich kann einen Klon des Repositorys machen, mit den beigetragenen Änderungen .. aber kann nicht Pull die Änderungen an erstellt Repository auf meinem PC.

Antwort

1

Die Fehlermeldung ist sehr viel zu Git verbunden und kommt von 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?"); 

, die auf issue 40 ähnlich ist (eine andere GUI, hier terminal-ide).

In diesem Fall war es aufgrund der Remote-Git-Installation, die unvollständig

(Comments 3 of issue 19)

git-merge wurde auch aus installieren, mit

fixiert werden kann fehlte
$> ln -s git git-merge 

in system/bin/

Die Auflösung in Ihrem Fall möglicherweise nicht genau die gleiche, aber es könnte zu einer fehlerhaften Git Installation zusammenhänge.

+0

Dank für Ihre Antwort.das einzige was ich auf meinem virtuellen server gemacht habe, war das componen update (vielleicht hat es geholfen). jetzt funktioniert es gut. Ich weiß nicht, was das Problem war, aber ich schätze Ihre Hilfe sehr. Ich werde Ihre Antwort für die Zukunft speichern. – arnie

2

Das alte Git deinstallieren und die neuste Version neu installieren, behebt dieses Problem für mich.

Hier ist ein Link auf die Installateure Link to get installers

Meine Nachricht genaue Fehler

wurde
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

ich das gleiche Problem aufgetreten, nachdem die git Bash ausführbaren sh.exe Wechsel als Administrator immer laufen (zu ein anderes Problem umgehen). Dann konnte git in bestimmten Szenarien nicht darauf zugreifen und verursachte verschiedene "Vielleicht ist git- * kaputt?" Fehler. Vielleicht hilft das jemand ...

+0

Ich kann dir nicht genug danken! Das war eine sehr naheliegende Lösung, Ihre Antwort hat mir wahrscheinlich Stunden gespart. Selbst die Neuinstallation von msysgit hat nicht geholfen, anscheinend war Windows fest mit dieser Einstellung verbunden, selbst wenn die ausführbare Datei selbst entfernt wurde. – sundar

+0

Ich nehme an, diese Fehlermeldung könnte viele Väter haben, aber Ihre Antwort hat es für mich gelöst. Ich möchte nur sicherstellen, dass diese Antwort Aufmerksamkeit für diejenigen bekommt, die selbst in dieselbe Falle geraten sind. Es geschah auch in Git Erweiterungen für mich, nicht TortoiseGit – EatATaco

+1

+1 Dies ist die Antwort. – fiberOptics

0

Ich sehe, dass Sie "git fetch" ausführen können. Wenn Sie auch "git merge" ausführen können, führt das Ausführen der Sequenz "git fetch" gefolgt von "git merge" dasselbe wie "git pull" aus.

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

+1

Run 'git config --global merge.defaultToUpstream true' wirklich nachahmen 'git pull's Verhalten –

+0

+1 Viel sauberer – CW0lf