そもそもそんなことしないほうがいいというのは承知で、開発中のパッケージなどでタグをうちまちがえたので修正したところ新しいコミットがダウンロードされなかった。
手順
- モジュールAのコミットAにtag v1.0.0をつけてpush
- モジュールAを使っているリポジトリで
go get ~~~@v1.0.0
- モジュールAでファイル追加してコミットする(コミットB)
- v1.0.0を消してコミットBにv1.0.0をつけなおしてpush
- 再度
go get ~~~@v1.0.0
したが変更がないためダウンロードしてくれなかった
解消方法
go clean -modcache
でクリアして、go.sumに書いてあるハッシュも消してから go get~/go/pkg/mod
にファイルがダウンロードされて、先程追加したファイルも存在することを確認
しかしこれだけでは足りなかった。 go buildしたところ、モジュールの修正が反映されていなくて、たとえば追加したstructを使っている箇所でビルドエラーとなる。 まだキャッシュが残っているみたい。
go clean -modcache
で ~/go/pkg/mod
が消えたのでいいと思ったが、
go clean -cache
で go env GOCACHE
にあるビルドキャッシュなども消さないといけなかった