以前「リポジトリ管理ツール ghq を導入した」という記事を書きましたが、Go も Modules が主流になって様子が変わったので、一度整理することにしました。

Go の Modules についての説明はこちらが分かりやすかったです。

今までは ghq get したものは ~/.ghqgo get したものは $GOPATH/src 配下に置いていました。 Go Modules 利用時では src ディレクトリの制限がなくなったため ghq と同じ場所に置くようにします。 $GOPATH は特段変更する必要がないのでそのままにしておきます。

一度きれいさっぱりにしたいので $GOPATH 配下を全部消します。必要なものは後でダウンロードするためメモしておきます。

1
$ rm -rf $GOPATH/bin $GOPATH/pkg $GOPATH/src

.gitconfig の root 設定で ~/.go/src を消します。

1
2
3
 [ghq]
-       root = /Users/iriya/.go/src
        root = /Users/iriya/.ghq

運用方法としては Go のツールやライブラリなどが欲しいときは go get で取ってきて、ソースコードが欲しいときは ghq get で取ってくるようにしました。 これでソースコードの管理は ~/.ghq 配下に収まります。