そもそもそんなことしないほうがいいというのは承知で、開発中のパッケージなどでタグをうちまちがえたので修正したところ新しいコミットがダウンロードされなかった。
手順
- モジュール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 にあるビルドキャッシュなども消さないといけなかった