Point to local repo using replace in go.mod

8 Sep 2021

What if you want to point a Go project at a Go module that you have cloned locally?

In this case, let's pretend I'm working on a project that import pgx. My go.mod looks like this:

module github.com/manniwood/iidy

go 1.16

require github.com/jackc/pgx/v4 v4.11.0

Let's say I have git cloned pgx to my local dir at /home/mwood/PROJECTS/pgx and I'd rather include that clone in my current project. I would change my project's go.mod like so:

module github.com/manniwood/iidy

go 1.16

replace github.com/jackc/pgx/v4 => /home/mwood/PROJECTS/pgx

require github.com/jackc/pgx/v4 v4.11.0

Apparently this edit does not have to be done by hand!

$ go mod edit -replace github.com/jackc/pgx/v4=/home/mwood/PROJECTS/pgx