やりたいこと
github.com/someone/hogeでgithub.com/forked/fugaをimportして利用したいです。 関係性は以下です。
どうやるか
例
https://github.com/elastic/cloud-sdk-goをforkしてhttps://github.com/kotaroooo0/cloud-sdk-goのリポジトリがあるとします。 第三のリポジトリhttps://github.com/kotaroooo0/poc-validate-onlyからhttps://github.com/kotaroooo0/cloud-sdk-goをimportして利用したいとします。
手順
1.https://github.com/kotaroooo0/cloud-sdk-goでGitのタグ打ちをします。
$ git tag v1.0.0 $ git push origin v1.0.0
2.https://github.com/kotaroooo0/poc-validate-only/blob/main/go.mod#L7のようにreplace
を使います。
module github.com/kotaroooo0/poc-validate-only go 1.21.7 require github.com/elastic/cloud-sdk-go v1.16.0 replace github.com/elastic/cloud-sdk-go v1.16.0 => github.com/kotaroooo0/cloud-sdk-go v1.0.0
これだけで第三のリポジトリhttps://github.com/kotaroooo0/poc-validate-onlyからhttps://github.com/kotaroooo0/cloud-sdk-goを利用できます。
備考
https://github.com/kotaroooo0/poc-validate-onlyではimportの部分は変更する必要なし
以下のように既存でimportしていたgithub.com/elastic/cloud-sdk-goは触らなくても自動でgithub.com/kotaroooo0/cloud-sdk-goをimportし参照してくれます。
https://github.com/kotaroooo0/poc-validate-only/blob/main/main.go#L3-L15
originalに参照を戻す方法
以下を消せばまたgithub.com/elastic/cloud-sdk-go を参照するように戻ります。
replace github.com/elastic/cloud-sdk-go v1.16.0 => github.com/kotaroooo0/cloud-sdk-go v1.0.0
github.com/kotaroooo0/cloud-sdk-goのgo.modについて
以下のようにgithub.com/kotaroooo0/cloud-sdk-goのgo.mod
はForkした時のまま変更する必要はありません。
module名も変更する必要はありません。
https://github.com/kotaroooo0/cloud-sdk-go/blob/update-deployment-validate-only-params/go.mod