web-dev-qa-db-fra.com

Comment convertir un clone superficiel Git en clone complet?

Suivi de this so-question: si j’ai un clone superficiel, comment récupérer tous les anciens commits pour en faire un clone complet?

182
Mot

Tu peux courir git fetch --depth=1000000 (en supposant que le référentiel compte moins d'un million de validations).

58
svick

La commande ci-dessous ((version 1.8.3) git) convertira le clone peu profond en un clone régulier

git fetch --unshallow

Ensuite, pour avoir accès à toutes les branches sur Origin (merci @Peter dans les commentaires)

git config remote.Origin.fetch "+refs/heads/*:refs/remotes/Origin/*"
git fetch Origin
605
Ramkumar D

J'avais besoin d'approfondir un repo seulement jusqu'à un commit particulier.

Après avoir lu man git-fetch, J’ai découvert qu’on ne peut pas spécifier un commit mais une date:

git fetch --shallow-since=15/11/2012

Pour ceux qui ont besoin d'approfondissement progressif, une autre citation de man:

--deepen=<depth>

Semblable à --depth, sauf qu'il spécifie le nombre de commits à partir de la limite peu profonde actuelle au lieu de la pointe de l'historique de chaque branche distante.

16
Victor Sergienko

Vous pouvez essayer ceci:

git fetch --update-shallow
1
Altynai

Aucun des messages ci-dessus n'a fait l'affaire. J'essaie de travailler avec des balises git à partir d'un clone peu profond.

J'ai d'abord essayé

git fetch --update-shallow

quel genre de travail à mi-chemin. Pourtant, pas de tags disponibles!

git fetch --depth=1000000

Cette dernière commande a vraiment récupéré les balises et je pouvais enfin exécuter

git checkout -b master-v1.1.0 tags/v1.1.0

et en finir avec ça.

HTH

0
Gen.Stack