Golangの学習しております。
GoModulesを利用したバージョン管理について学んでいるのですが、以下のような構成の場合
一度github上に反映した後、ローカルのhello-world.goを修正してもリモート上のパッケージを参照してしまい、動作の確認ができません。

対応として以下の方法があるようなのですが、どの方法を取るのが良いのでしょうか。

  • vendorディレクトリを使う
  • GOPROXY経由で参照する
  • replaceディレクティブを使う
├── main.go
└── pkg
    └── hello-world
        └── hello-world.go
package main

import (
    "github.com/repo/project/pkg/hello-world"
)

func main() {
    helloworld.HelloWorld()
}

また replaceディレクティブを使う を試しているのですが
以下の通りgo.modを修正してビルドすると以下のエラーが発生するのですが
解消方法をご教示いただけないでしょうか。

module github.com/repo/project

go 1.13

require github.com/repo/project v0.0.0

replace github.com/repo/project => ./

▸ go build
go: finding github.com/repo/project latest
build github.com/repo/project: cannot load github.com/repo/project/pkg/hello-world: module github.com/repo/project@latest (v0.0.0) found, but does not contain package github.com/repo/project/pkg/hello-world

よろしくお願いいたします