Vous avez peut-être besoin d'un nettoyage :
git gc --prune=now
ou vous pourriez avoir besoin d'un pruneau :
git remote prune public
pruneau
Supprime toutes les branches de suivi périmées sous <nom>. Ces branches périmées ont déjà été supprimées du référentiel distant référencé par <nom>, mais sont toujours disponibles localement dans "remotes/<nom>".
Avec l'option --dry-run, les branches à élaguer sont signalées, mais elles ne sont pas élaguées.
Cependant, il semble que ceux-ci auraient dû être nettoyés plus tôt avec
git remote rm public
rm
Supprimez la branche distante nommée <nom>. Toutes les branches de suivi à distance et les paramètres de configuration pour le distant sont supprimés.
Il se peut donc que vous ayez édité votre fichier de configuration à la main et que cela ne se soit pas produit, ou que vous ayez des problèmes de privilèges.
Peut-être qu'il faut recommencer et voir ce qui se passe.
Contexte des conseils
Si vous jetez un coup d'œil à la journaux de révision Vous remarquerez que j'ai suggéré des techniques plus "correctes", qui, pour une raison ou une autre, n'ont pas voulu fonctionner sur leur référentiel.
Je soupçonne que l'OP a fait quelque chose qui a laissé son arbre dans un état incohérent qui a causé un comportement un peu étrange, et git gc
était nécessaire pour réparer les restes.
Habituellement git branch -rd origin/badbranch
est suffisant pour détruire une branche de suivi locale, ou bien git push origin :badbranch
pour détruire une branche distante, et généralement vous nunca besoin d'appeler git gc
41 votes
Est-ce que
git remote prune [remote-name]
ogit fetch -p [remote-name]
ne fonctionne pas dans votre scénario ? En le faisant avecgit gc
est beaucoup plus énergique que ce qui est normalement nécessaire.7 votes
git remote prune [remote-name]
ne fonctionnera pas avec git svn, mais pas non plus avecgit gc
...git branch -rd origin/name
fonctionne cependant. @Casey, vous devriez probablement choisir la deuxième réponse - c'est légèrement moins dangereux.4 votes
J'adore cette question. Je reviens presque tous les mois
0 votes
Relié, si ce n'est pas une cible dupe : Supprimer une branche Git en local et à distance .
2 votes
Pour éviter les erreurs de n00b gitter à l'avenir, je recommande d'utiliser une autre branche d'exemple que
master
...notamment lors de la suppression sur la télécommande.0 votes
La vraie question est de savoir comment/pourquoi Git parvient à se retrouver dans cet état cassé en premier lieu... La branche locale est supprimée, la branche distante est supprimée, mais Git s'accroche à de vieilles informations datées. Qui a pensé que c'était une bonne idée de ne pas tout supprimer quand une branche était supprimée. Quel comportement fallacieux....
0 votes
Comment je suis arrivé à ce genre de situation : J'avais l'origine clonée sur deux machines,
computer1
ycomputer2
. Surcomputer2
J'ai ajoutécomputer1
comme télécommande, puis a faitgit push computer2 --mirror
. Maintenantcomputer1
J'ai des branches de laremotes/computer1/branchname
même si (de manière tout à fait compréhensible) il n'est pas suivi en tant que télécommande.