Как работать с измененным удаленным тегом с помощью модулей go - PullRequest
0 голосов
/ 18 апреля 2020

В настоящее время я работаю над первым выпуском некоторого инструмента, который я написал в Go. У инструмента есть два компонента с индивидуальной версией (один из которых является API-интерфейсом плагина).

Во время разработки мне было трудно разобраться, как работать с этими модулями, и, наконец, настроить два отдельных репозитория. Я создал несколько тегов для API плагина, которые я перенес на удаленный, один из которых был v0.1.0. Это была глупая идея, поскольку на самом деле это не было v0.1.0, и я просто хотел иметь какой-то тег для ссылки.

В любом случае, сейчас я пытаюсь составить проект. Поэтому я удалил тег v0.1.0 локально и в удаленном репозитории, создал новый (который ссылается на другой коммит) и перенес его в удаленный репозиторий.

Проблема в том, что я не могу сделать Go забыть старое v0.1.0. Я попробовал следующие вещи:

go clean -i url/to/api
rm -rf ~/go/pkg/mod/url/to/api@v0.1.0
go clean --modcache

Но независимо от того, что я делаю, всякий раз, когда я выполняю

go get -u url/to/api@v0.1.0

, он загружает старую версию. Я проверяю это, проверяя код в ~/go/pkg/mod/url/to/api@v0.1.0.

Я пробовал его на другой машине, на которой ранее не устанавливался модуль, и, к моему ужасу, он также загрузил старую версию , хотя в репо нет следов старого тега .

Что здесь происходит? Go имеет какую-то центральную память версий модулей? Как заставить забыть старую версию и загрузить новую?

Редактировать:

Чтобы быть уверенным, я попробовал

git clone -b v0.1.0 https://url/to/api.git

И это проверяет API в правильной версии. Так что go должен делать ... что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...