Edited at

自作パッケージをpushしてgo getするのが面倒くさい


自作パッケージをpushしてgo getするのが面倒くさい

3/9追記しました


急募

ちゃんとした開発方法が記されたわかりやすいドキュメント


問題

そもそも開発方法としてどうしたらいいのかわからないけど、とりあえず誰でもgo getして使えるようにgithubのリポジトリからインポートするようにしています。

import "github.com/~~~"

こんな感じに開発していると、このインポートしているパッケージを変更したときにまたpushしないといけません。

ちょっとした変更でも。

git add .

git commit -m 'ちょっとした変更'
git push origin master

というか、動くかどうかもわからないコードでマスターが汚れます。


3/9追記 解決方法

コメントで@spiegel-im-spiegelさんに教えていただきました。

GOPATHには複数のパスを設定できるようです。go getを使用した場合は最初に指定したパスが使われます。そのため、2番目以降に開発用のディレクトリを指定すると良さそうです。

例えば、GOPATH$HOME/go-devというパスを指定し、$HOME/go-dev/src/github.com/ophum/testというディレクトリを作成し、このディレクトリで開発を行うようにすると良さそうです。


暫定的な解決方法(?)

go getすると$GOPATHで指定されたディレクトリにリモートからクローンするようです。例えば、githubのophumというユーザのtestというリポジトリをgo getした場合$GOPATH/src/github.com/ophum/testというパスでクローンされます。また、このディレクトリの中にはリポジトリの内容と同じものが入っています。(クローンなので)

同じものが入っています。

ということで、例えばローカルのリポジトリのパスが以下のような場合

$HOME/test

このパスのリンクを$GOPATH/src/github.com/ophum/に貼ってあげます。

ln -s $HOME/test $GOPATH/src/github.com/ophum/test

そうすることで、$HOME/testを変更した場合リモートにpushすることなく、このパッケージをインポートしているパッケージでgo runすることができました。


急募

ちゃんとした開発方法が記されたわかりやすいドキュメント