Nun, da es git fetch --unshallowexistiert (wie in der Antwort von @ sdram), ist diese Antwort nicht mehr die beste.
Jack O'Connor
1
Die Antwort von @ sdram hat bei mir nicht funktioniert (Git-Version 2.1.1), aber diese Antwort hat funktioniert.
Kay - SE ist böse
2
Keine der Antworten hat bei mir funktioniert. Beide Befehle haben es geschafft, alle fehlenden Commits abzurufen, aber wenn ich versuche, neue Commits zu pushen, erhalte ich eine Fehlermeldung, dass der Server nichts über 'flache' Refs
weiß
3
git fetch --depth=2147483647ist die größtmögliche Tiefe, die dem Befehl zur Verfügung gestellt werden kann.
Clacke
5
Ich habe verwendet git fetch --unshallow, aber es zeigt immer noch nicht alle Zweige.
Sid
674
Der folgende Befehl (Git-Version 1.8.3) konvertiert den flachen Klon in einen regulären
git fetch --unshallow
Dann, um Zugriff auf alle Zweige am Ursprung zu erhalten (danke @Peter in den Kommentaren)
Dies macht den Nebeneffekt --single-branch nicht rückgängig. Bearbeiten Sie dazu .git / config und ändern Sie fetch = + refs / Heads / BRANCHNAME: refs / remotes / origin / BRANCHNAME, um = + refs / Heads / *: refs / remotes / origin / * zu holen
Peter Cordes
3
Dadurch werden keine lokalen Zweige erstellt, die die entfernten Zweige verfolgen. Sie müssen also noch -b BRNAME origin / BRNAME auschecken, um diese Einrichtung zu erhalten.
Peter Cordes
25
Siehe auch stackoverflow.com/questions/17714159/… : git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";git fetch origin Von einer Antwort sollte es dasselbe geben wie das Bearbeiten von .git / config von Hand
Peter Cordes
Dies funktioniert nur, wenn das Repo als flach markiert ist. Ich kann mich nicht erinnern, wie, aber es gibt Situationen, in denen Sie ein unvollständiges Repo erhalten können, ohne explizit einen flachen Klon erstellt zu haben. @ svicks stackoverflow.com/a/6802238/260122 ist die Antwort, die jedes Mal funktioniert.
Clacke
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'arbeitete für mich
gzaripov
19
Ich musste ein Repo nur auf ein bestimmtes Commit vertiefen.
Nach dem Lesen man git-fetchstellte ich fest, dass man kein Commit angeben kann, aber ein Datum angeben kann:
git fetch --shallow-since=15/11/2012
Für diejenigen, die eine schrittweise Vertiefung benötigen, ein weiteres manZitat:
--deepen=<depth>
Ähnlich wie --depth, außer dass die Anzahl der Commits von der aktuellen flachen Grenze anstelle von der Spitze jedes Remote-Zweigverlaufs angegeben wird.
Antworten:
EDIT:
git fetch --unshallow
Jetzt ist eine Option (danke Jack O'Connor).Sie können ausführen
git fetch --depth=1000000
(vorausgesetzt, das Repository verfügt über weniger als eine Million Commits).quelle
git fetch --unshallow
existiert (wie in der Antwort von @ sdram), ist diese Antwort nicht mehr die beste.git fetch --depth=2147483647
ist die größtmögliche Tiefe, die dem Befehl zur Verfügung gestellt werden kann.git fetch --unshallow
, aber es zeigt immer noch nicht alle Zweige.Der folgende Befehl (Git-Version 1.8.3) konvertiert den flachen Klon in einen regulären
Dann, um Zugriff auf alle Zweige am Ursprung zu erhalten (danke @Peter in den Kommentaren)
quelle
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";
git fetch origin
Von einer Antwort sollte es dasselbe geben wie das Bearbeiten von .git / config von Handgit fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'
arbeitete für michIch musste ein Repo nur auf ein bestimmtes Commit vertiefen.
Nach dem Lesen
man git-fetch
stellte ich fest, dass man kein Commit angeben kann, aber ein Datum angeben kann:Für diejenigen, die eine schrittweise Vertiefung benötigen, ein weiteres
man
Zitat:quelle
Sie können dies versuchen:
quelle
Keine der oben genannten Nachrichten hat den Trick getan. Ich versuche mit Git-Tags zu arbeiten, die von einem flachen Klon ausgehen.
Zuerst habe ich es versucht
welche Art von auf halbem Weg gearbeitet. Es sind jedoch keine Tags verfügbar!
Dieser letzte Befehl hat die Tags wirklich abgerufen und ich konnte sie endlich ausführen
und damit fertig sein.
HTH
quelle