# Conflicting workspace module replaces can be overridden by a replace in the # go.work file. go list -m example.com/dep stdout 'example.com/dep v1.0.0 => ./dep3' -- go.work -- use m use n replace example.com/dep => ./dep3 -- m/go.mod -- module example.com/m require example.com/dep v1.0.0 replace example.com/dep => ./dep1 -- m/m.go -- package m import "example.com/dep" func F() { dep.G() } -- n/go.mod -- module example.com/n require example.com/dep v1.0.0 replace example.com/dep => ./dep2 -- n/n.go -- package n import "example.com/dep" func F() { dep.G() } -- dep1/go.mod -- module example.com/dep -- dep1/dep.go -- package dep func G() { } -- dep2/go.mod -- module example.com/dep -- dep2/dep.go -- package dep func G() { } -- dep3/go.mod -- module example.com/dep -- dep3/dep.go -- package dep func G() { }