1. ホーム
  2. git

[解決済み] github リポジトリの特定のタグを取得する方法

2022-10-31 12:16:59

質問

InfluxDBデータベース(バージョン0.8.8)のコンパイルに go get github.com/influxdb/influxdb

しかし、これは master ブランチをプルするものであり、そのためには v0.8.8 タグが必要です。

をやってみた。 go get github.com/influxdb/influxdb/releases/tag/v0.8.8 を試しましたが、これは見つからず失敗しました。

また、通常の go get を使って手動でチェックアウトしています。 gitGOPATH/src/github... を使用することで、正しいバージョンを設定することができます。

最後の方法を使った場合の問題は、依存関係を引くときに go get -u -f ./... でプルしようとすると、master ブランチでそれらを見つけようとし、それらのいくつかは master ブランチに存在しないことです...。

TL;DR : 実行する go get を実行し、正しい依存関係を引き出します。

どのように解決するのですか?

この場合 go get ツールではできません。代わりに、サードパーティの go パッケージ管理ツールを使うか、より細かく管理したいパッケージのために独自のフォークを作成する必要があります。

Google で働いている人に話を聞いたところ、彼はこの問題/要件を認めており、彼のチームが使用した vendoring はかさばるので、おそらくすぐに公式ツールで解決するだろうと言っていました。

もっと読む。

Go 1.6でのベンダリング

ベンダリングは は go 1.6 で experimental からリリースされました。 (この投稿が最初に書かれた後) で、サードパーティのツールを使って特定のタグやパッケージのバージョンを使うプロセスをより簡単にするものです。 go get には、特定のタグやバージョンを取得する機能はまだありません。

ベンダリングの仕組みについてもっと詳しく。 ベンダーフォルダを理解し利用する

Go 1.11 のモジュール

Go 1.11 では、依存関係の管理を改善するために、モジュールと呼ばれる実験的な機能がリリースされました。 Go 1.11 のモジュールに関する情報