У меня есть 2 проекта с go.mod в корневом каталоге. Один - https://github.com/Gohryt/Impossible.go. Следующий - это то, что require невозможно в go.mod

Я сделал простой коммит с переименованием пары переменных. Мой второй модуль нуждается в этих переменных, и я переименовал их там же. Но я не нашел ни одной команды типа go mod update, только go mod tidy, и я не могу использовать новые имена переменных. Я пробовал tidy, но это ничего не дало. В некоторых руководствах из интернета я нашел, что я должен переименовать версию в go mod и тогда tidy должен работать, но он имеет имя типа v0.0.0-20210101010359-ec9f21b49366 и я действительно не могу догадаться, как выглядит новое имя.

.

Есть ли нормальный способ обновления модуля или я должен использовать старую версию зависимости каждый раз после первого использования?

Я попробовал назвать версию с latest, но go mod tidy снова ничего не сделал.

Gohryt

Ответов: 2

Ответы (2)

Если модуль A требует модуль B, а ваша программа требует оба модуля... Вы должны убедиться, что модуль A требует правильную версию модуля B. Вот некоторые вещи, которые я часто делаю, чтобы все было синхронизировано так, как мне нужно.

Чтобы обновить модули, сначала войдите в репозиторий...

.

обновление всех модулей:

go get -v -u ./...

обновление определенного модуля до последней фиксации:

go get -v -u github.com/user/repo@master

обновление определенного модуля до определенной ветки:

go get -v -u github.com/user/repo@develop

и затем напечатайте это в конце:

go mod tidy

зафиксируйте изменения в вашей репозитории и подумайте о новом теге.

git commit -v -a

git tag v0.0.2

git push origin branch --tags

Затем вернитесь в репозиторий программы... и проделайте те же шаги, но убедитесь, что ваши импортированные модули указывают правильные теги, когда вы выполняете команду -v -u.

И убедитесь, что ваши файлы go.sum, go.mod не содержат лишнего материала из старых модулей.

Больше информации здесь https://blog.golang.org/publishing-go-modules

Я бы сделал go get -u "{package_name}@{git_commit_hash}"

.

например, go get -u "gopack@1fdd851775f2bc513003d46850c56cb77d8e297b"

.

-u флаг предназначен для обновления уже установленного пакета.

2022 WebDevInsider