2015-12-19 10 views
5

Einige Kollegen und ich haben an einem Projekt gearbeitet, das in einem privaten Git-Repository gespeichert ist. Historisch gesehen gab es keine Probleme, aber vor kurzem habe ich versucht, zu klonen, und bekam folgendes Problem:Git-Klon: "Sie scheinen ein leeres Repository geklont zu haben"

Cloning into 'project'... 
warning: You appear to have cloned an empty repository. 
Checking connectivity... done. 

A git log bietet:

fatal: Ihre aktuellen Zweig ‚Master‘ hat keine begeht noch

Das ist nicht korrekt - mein Kollege hat am 6. Dezember viele (nicht leere) Änderungen vorgenommen (obwohl dieser Zweig nun nicht auf einem --single-branch Klonversuch angezeigt wird). Wenn er in das Git-Repository ssh ist, gibt es dort viele Verzeichnisstrukturen. meine Fragen

So:

  1. Wie konnte das passieren?
  2. Wie können wir das Repository wiederherstellen? Es scheint, dass das Zeug auf dem Remote-Repo ist, aber aus irgendeinem Grund ist es nicht bewusst, dass es da ist.
+3

Haben sie zu einem Zweig gedrängt, der nicht "Master" ist? Wenn ja, müssen Sie nur diesen Zweig überprüfen? – hobbs

+1

Sie haben entweder das falsche Repository geklont oder sie belügen Sie (Computer können nicht lügen - ja -). – m0skit0

+0

Sie haben zu einem Zweig gedrängt, der kein Master ist, aber wie bereits erwähnt, können wir diesen Zweig (oder einen anderen Zweig) nicht auschecken. Ich bezweifle, dass er lügt :-) – user650261

Antwort

2

Sie haben das richtige Repository geklont. Ich denke, sie haben den Meisterzweig nicht verdrängt. Die anderen Zweige werden dort wie Ursprung/Entwicklungemnt-Beispiel sein. Sie müssen einen lokalen Zweig erstellen, der die Remote-Zweigstellen verfolgen kann, und dann können Sie den neuesten Code abrufen. Dies ist, wie Sie Remote-Niederlassungen verfolgen können:

git branch --track dev-example origin/dev-example 
git checkout dev-example 
+0

Vorher gab es einen Master. Es ist kürzlich verschwunden, und wir wissen nicht warum. Wir können keine anderen Filialen verfolgen, da die Fernbedienung nicht meldet, dass sie dort sind. Zum Beispiel: git branch --track symbolicPorts Herkunft/symbolicPorts Fehler: Der angeforderte Upstream-Zweig ‚Herkunft/symbolicPorts‘ nicht Hinweis existiert: Hinweis: Wenn Sie Ihre Arbeit auf gründend auf einem vorgeschalteten Hinweis planen: Zweig das existiert bereits auf der Fernbedienung, müssen Sie möglicherweise Hinweis: Führen Sie "git fetch", um es abzurufen. Hinweis: Hinweis: Wenn Sie planen, eine neue lokale Niederlassung, die ... – user650261

+0

check git fetch ursprung –

+0

Interessanterweise hing das für ein paar Sekunden und kehrte dann ohne verbale Ausgabe zurück. Es scheint, als ob es etwas getan haben könnte, aber danach mit einem "git pull" kehrt zurück: "Ihre Konfiguration gibt an, mit dem ref 'refs/heads/master' von der Fernbedienung zu verschmelzen, aber keine solche Referenz wurde abgerufen." – user650261

6

Wenn der Repo auf einem Gitlab Server gehostet wird, und Sie verwendet git über http den Repo zu klonen, könnte es dazu in Beziehung gesetzt werden:

Git over HTTP will receive an empty repo if giltab-git-http-server is not properly configured

If for some reason gitlab-git-http-server is not properly configured, or you are using a custom nginx or Apache proxy that forwards directly to Unicorn and you attempt to clone via HTTP, the request succeeds, you receive a 200 and an empty repo.

A schnelle Lösung ist git über ssh verwenden klonen das Repo.

Verwandte Themen