Maintenant qu'elle git fetch --unshallowexiste (comme dans la réponse de @ sdram), cette réponse n'est plus la meilleure.
Jack O'Connor
1
La réponse de @ sdram n'a pas fonctionné pour moi (git version 2.1.1), mais cette réponse a fonctionné.
kay - SE is evil
2
Aucune des réponses n'a fonctionné pour moi. Les deux commandes ont réussi à récupérer toutes les validations manquantes, mais lorsque j'essaie de pousser de nouvelles validations, je reçois une erreur
indiquant que
3
git fetch --depth=2147483647est la plus grande profondeur possible à fournir à la commande.
clacke
5
J'ai utilisé git fetch --unshallow, mais il ne montre toujours pas toutes les branches.
Sid
674
La commande ci-dessous (git version 1.8.3) convertira le clone superficiel en un clone normal
git fetch --unshallow
Ensuite, pour avoir accès à toutes les branches d'origine (merci @Peter dans les commentaires)
Cela n'annule pas l'effet secondaire --single-branch. Pour ce faire, éditez .git / config et changez fetch = + refs / heads / BRANCHNAME: refs / remotes / origin / BRANCHNAME to fetch = + refs / heads / *: refs / remotes / origin / *
Peter Cordes
3
Cela ne crée pas de succursales locales qui suivent les succursales distantes, vous devez donc toujours vérifier -b BRNAME origin / BRNAME pour obtenir cette configuration.
Peter Cordes
26
Voir aussi stackoverflow.com/questions/17714159/… : à git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";git fetch origin partir d'une réponse, il devrait y avoir la même chose que l'édition .git / config à la main
Peter Cordes
Cela ne fonctionne que si le dépôt est marqué comme peu profond. Je ne me souviens pas comment, mais il y a des situations où vous pouvez vous retrouver avec un dépôt incomplet sans avoir explicitement fait un clone peu profond. @ svick's stackoverflow.com/a/6802238/260122 est la réponse qui fonctionne à chaque fois.
clacke
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'travaillé pour moi
gzaripov
19
J'avais besoin d'approfondir un dépôt uniquement jusqu'à un commit particulier.
Après avoir lu man git-fetch, j'ai découvert que l'on ne peut pas spécifier un commit, mais peut spécifier une date:
git fetch --shallow-since=15/11/2012
Pour ceux qui ont besoin d'approfondissement incrémental, une autre mancitation:
--deepen=<depth>
Similaire à --depth, sauf qu'il spécifie le nombre de validations à partir de la limite peu profonde actuelle au lieu de la pointe de chaque historique de branche distante.
Deux façons d'obtenir un clone peu profond en un clone profond. :
Utilisez les étapes suivantes pour télécharger la branche: (Cela télécharge la copie superficielle de la branche puis la convertit en un clone complet, c'est-à-dire apporte la branche complète et son historique).
Cela convertit le clone peu profond en clone profond avec tous les détails de l'historique et de la branche.
Vous pouvez éviter les étapes f et g, si vous utilisez la commande ci-dessous au lieu de la commande présente à l'étape a. pour faire le clone peu profond:
Réponses:
EDIT:
git fetch --unshallow
est maintenant une option (merci Jack O'Connor).Vous pouvez exécuter
git fetch --depth=1000000
(en supposant que le référentiel contient moins d'un million de validations).la source
git fetch --unshallow
existe (comme dans la réponse de @ sdram), cette réponse n'est plus la meilleure.git fetch --depth=2147483647
est la plus grande profondeur possible à fournir à la commande.git fetch --unshallow
, mais il ne montre toujours pas toutes les branches.La commande ci-dessous (git version 1.8.3) convertira le clone superficiel en un clone normal
Ensuite, pour avoir accès à toutes les branches d'origine (merci @Peter dans les commentaires)
la source
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";
git fetch origin
partir d'une réponse, il devrait y avoir la même chose que l'édition .git / config à la maingit fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'
travaillé pour moiJ'avais besoin d'approfondir un dépôt uniquement jusqu'à un commit particulier.
Après avoir lu
man git-fetch
, j'ai découvert que l'on ne peut pas spécifier un commit, mais peut spécifier une date:Pour ceux qui ont besoin d'approfondissement incrémental, une autre
man
citation:la source
Vous pouvez essayer ceci:
la source
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é
quel genre de travail à mi-chemin. Pourtant, aucun tag disponible!
Cette dernière commande a vraiment récupéré les balises et j'ai finalement pu exécuter
et en finir avec ça.
HTH
la source
Deux façons d'obtenir un clone peu profond en un clone profond. :
Utilisez les étapes suivantes pour télécharger la branche: (Cela télécharge la copie superficielle de la branche puis la convertit en un clone complet, c'est-à-dire apporte la branche complète et son historique).
une. git clone -b branch http: //git.repository/customSP01.git --depth 1
Cela fait un clone peu profond (avec l'option profondeur) ne récupère qu'une seule branche (à la profondeur demandée).
// La commande ci-dessus convertira le clone superficiel en un clone normal. Cependant, cela n'apporte pas toutes les branches:
Ensuite, pour accéder à toutes les succursales.
[Cette étape peut également être effectuée manuellement en modifiant la ligne suivante dans .git / config.
fetch = + refs / heads / master: refs / remotes / origin / master
à (remplacer le maître par *):
chercher = + refs / têtes / *: refs / télécommandes / origine / *]
Cela convertit le clone peu profond en clone profond avec tous les détails de l'historique et de la branche.
Vous pouvez éviter les étapes f et g, si vous utilisez la commande ci-dessous au lieu de la commande présente à l'étape a. pour faire le clone peu profond:
git clone -b branch --no-single-branch http: //git.repository/customSP01.git --depth 1
la source