Maison >développement back-end >Golang >Allez chercher la balise de référence invalide

Allez chercher la balise de référence invalide

王林
王林avant
2024-02-13 16:36:09603parcourir

Allez chercher la balise de référence invalide

L'éditeur PHP Xinyi vous présentera comment résoudre le problème de "l'obtention de balises invalides pour référence". Lors de l'écriture de code PHP, vous rencontrerez parfois un message d'erreur référençant une balise non valide. Cela peut être dû à des versions PHP incompatibles ou à des problèmes de logique de code. Il existe de nombreuses façons de résoudre ce problème, qui peuvent être résolues en vérifiant la logique du code, en mettant à jour la version PHP ou en modifiant le code. Ensuite, nous explorerons étape par étape les moyens de résoudre ce problème et vous aiderons à exécuter le code PHP en douceur.

Contenu de la question

J'ai développé un binaire basé sur Go et j'ai rencontré un problème étrange.

J'ai donc le package a et le package b, où le package b est directement référencé dans le package a.

L'application principale (package a) utilise le package b Le package b est référencé via son fichier mod.

J'ai donc ajouté une version balisée du package b pour le package a via go get [email protected] mais lorsque j'ai rencontré des problèmes, j'ai supprimé cette version et marqué à la fois localement et à distance (github) et créé une version balisée sur les commits plus récents. github confirme que la nouvelle version est basée sur la nouvelle référence, mais lorsque je référence la même balise via un nouveau commit, elle fait en fait référence à la même ancienne version de code.

Récemment, pour résoudre et résoudre ce problème, j'ai créé une balise appelée v1.1.1, mais bien qu'elle ait résolu le problème, maintenant même lorsque je fais référence à la v1.1.0, elle me donne le message suivant à la fin.

root@CaesarPrime-AcerE5:/mnt/d/AppA# go get github.com/xxxx/B@master
go: downloading github.com/xxxx/B v1.11.0
go: downloading github.com/xxxx/xxxxz v0.3.2
go: downloading github.com/xxxx/xxxxd v1.1.1
go: downloading golang.org/xxxx/xxxxv v0.0.0-20220127200216-cd36cc0744dd
go: downloading golang.org/xxxx/xxxxb v0.3.7
go: downloading github.com/xxxx/xxxx v0.0.0-20170810143723-de5bf2ad4578
go: upgraded github.com/xxxx/B v1.1.0 => v1.1.1

Je pense que cela peut être dû à un problème de mise en cache car je ne vois pas la balise v1.1.1 ni à distance ni localement. Mais comment cela peut-il se produire si go git extrait quelque chose du référentiel distant car il a déjà extrait des balises tardives qui ont été supprimées ?

Ou peut-être ai-je commis une erreur embarrassante dans la gestion des paquets ?

Solution de contournement

Vous avez raison, la balise supprimée peut exister dans le proxy public de go

aller à la documentation dit :

Une fois qu'un tag est créé, il ne doit pas être supprimé ou modifié en Différentes révisions. Les versions sont vérifiées pour la sécurité, Constructions reproductibles. Si le tag est modifié, le client peut voir le message de sécurité Une erreur s'est produite lors du téléchargement. Même après la suppression de la balise, son contenu Peut encore être disponible sur l'agent du module.

Vous pouvez rétracter des versions dans go.mod en plaçant une section comme celle-ci :

retract (
    v1.0.0 // Published accidentally.
    v1.0.1 // Contains retractions only.
)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer