2009-12-25 3 views
39

Ich versuche, Gitosis nach den Anweisungen here einzurichten.git Warnung: remote HEAD bezieht sich auf nicht vorhandene ref, nicht zur Kasse

Es funktioniert gut von meinem Remote-Rechner, so scheint der Server eingerichtet zu sein, aber ich würde auch gerne in der Lage sein, Entwicklung auf meinem gitosis Server-Rechner von einem anderen Benutzerkonto (nicht der Git-Benutzer in der Gitosis erstellt) Konfiguration).

Ich habe den Schlüssel kopiert und modifiziert, um die gitosis.conf so dass der andere Benutzerkonto Zugriff hat, aber wenn ich versuche, es zu klonen scheint außer am Ende zu arbeiten, sagt er:

git Warning: remote HEAD refers to nonexistent ref, unable to checkout 

und ich am Ende mit ein leeres Verzeichnis mit Ausnahme .git

ich habe google für diese ein wenig, haben aber keinen wirklichen Einblick in das, was das Problem ist,

+0

Für diejenigen, die mit GitHub in dieses Problem geraten und den ersten Hit auf Google gemacht haben, siehe http://StackOverflow.com/questions/1485578/how-do-i-change-a-git-remote-head-to -point-to-something-note-master und https://help.github.com/articles/error-remote-head-references-to-nonexistent-ref-unable-to-checkout – Tino

Antwort

25

Ich habe herausgefunden, was falsch gelaufen ist. Das Problem war, dass ich die Warnungen nicht beachtet habe, als ich zu meinem Gitosis-Server drängte, so dass ich nicht erkannte, dass ich nicht einen bestimmten Zweig vorantrieb. Ich hatte angenommen, es würde nur den Strom drücken, aber das ist nicht der Fall, bis Sie festgelegt:

git config push.default current 
+0

Dies ist der Beitrag, der mich darauf hingewiesen: http://stackoverflow.com/questions/1475468/git-push-failed-you-did-not-specify-any-refspecs-to-push und die Tatsache, dass, wenn Ich habe einen Zweig -r basierend auf Michael Krelins Antwort gemacht und bekam nichts zurück. – srboisvert

+0

Danke dafür. Ich stieß auf dasselbe Problem. – Dilawar

+0

Vielen Dank dafür. –

21
  1. die git branch -r tun und git checkout -b master <remotebranchofinterest>

  2. Überprüfen Sie die HEAD Datei in Remote-.git.

  3. Überprüfen Sie, ob jemand bereits die Frage gestellt: here

1

Keep it simple. Fügen Sie die gitosis-Berechtigung und den SSH-Schlüssel für das Benutzerkonto auf Ihrem Server hinzu und klonen Sie wie üblich:

[email protected]$ git clone [email protected]:repo.git 
+0

Das ist genau das, was ich getan habe und das führte zu der Fehlermeldung. Der Zugriff scheint aufgrund der git-Ausgabe in Ordnung zu sein (ich habe das Debuggen aktiviert, um mir mehr Einsicht zu geben). – srboisvert

2

Hatte ein ähnliches Problem. Es scheint, dass ich bei meinem ersten Push habe ich git push origin master:/refs/heads/master statt git push origin master:refs/heads/master (beachten Sie den zusätzlichen Schrägstrich). Dies führte dazu, dass mein Master (im Remote-Repository) unter refs/heads/refs/heads/master statt refs/heads/master platziert wurde. Der Fix bestand darin, die Ordner auf der Remote zu reorganisieren und erneut zu pushen.

0

Wenn Sie versuchen, über http:// zu klonen, beachten Sie, dass Sie einen git neuer als 1.6.6 benötigen - andernfalls sollten Sie einen git:// basierten URI verwenden.

18

Eine weitere mögliche Ursache für diese Warnung könnte sein, dass der Zweig master im Repository fehlt (OR), das Repository verwendet KEINE Master-Verzweigung. Wenn dies der Fall ist, keine Sorge einfach nicht über die Warnung !, verwenden

git checkout <some_existing_branch> 

Die Warnung ist, da standardmäßig nach dem Pull git versucht, in den Hauptzweig zur Kasse.

+1

Das ist ein Problem für mich jetzt. Wenn Sie pip verwenden, um Python-Pakete von git zu installieren, scheint es, dass git versucht, zuerst den Master zu checken und dann zu dem Zweig oder Commit wechselt, von dem Sie es verlangen. Der erste Schritt schlägt fehl, wenn Sie keinen Master im Repo haben. – tobych

0

Ich benutze TortoiseGit und ich weiß nicht, wie man git über die Kommandozeile benutzt. So frage ich mich immer, wie ich solche Probleme in meiner Schildkröte vermeiden kann. Vielleicht bin ich nicht alleine.Ich reparierte das Problem auf diese Weise:

  • Klon die Remote-Repo
  • direkt am Stammordner klicken und von dort aus einer bestehenden Niederlassung

Im meinen Fall wählen, da nur ein Zweig „war dev ", ohne Meister. Als ich versuchte zu klonen, gab es keinen lokalen Zweig zum Auschecken und sobald ich zu "dev" wechselte, konnte ich alle Inhalte erfolgreich auschecken. Hoffe das wird hilfreich sein.