I am using BorgBackup to backup my entire home, exluding some folders (cache, node_modules, etc).
I want to have a backup of all my code (even though I keep it on github and my private Gogs instance), so I didn’t want to exclude the entire GOPATH, but because of all the installed third-party dependencies, it grew pretty big in size.
Solution:
Multiple GOPATH entries.
You can use multiple directories as your GOPATH.
$ go env GOPATH
/home/me/.local/share/go:/home/me/code/go
The way this works, go get
defaults to the first directory (so, ~/.local/share/go
), so the third-party code lands there, and for my personal projects, I can manually create the directories in ~/code/go
. Go import
statements check both directories.
This way I can put ~/.local/share/go
in my exclusion list and not waste space by backing up the third-party code.