Wie-zu-Punkt-Go-Modul in Abhängigkeit gehen.mod einen aktuellen commit in einem repo?
Beginnend mit v1.11 Go Hinzugefügt-Unterstützung für Module. Befehle
go mod init <package name>
go build
erzeugen würde go.mod
und go.sum
- Dateien enthalten alle gefundenen Versionen für die Paket-Abhängigkeiten.
Wenn ein Modul keine releases, die neuesten commit des Moduls verwendet wird. Wenn ein Modul nicht haben, Versionen, die neueste ist gepflückt wie eine Abhängigkeit.
Aber manchmal würde ich eine Funktionalität benötigen, die nicht in einer veröffentlichten Version noch nicht, aber von einem commit nach release. Wie setze ich go.mod
zu zeigen, nicht zu einem release eines Moduls, sondern auf einen bestimmten commit in das Modul-repository?
Wie es aussieht kann ich es auch per hand gehen.mod mit
module /my/module
require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)
wo v0.0.0
entspricht nicht der Letzte veröffentlichte release-tag 20181121201909
wäre eine commit-Zeitstempel und die af044c0995fe
wäre die commit-hash? Sollten solche Informationen zu finden sein und von hand eingegeben, oder gibt es eine bessere Möglichkeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur "go get' auf den commit-hash, den Sie möchten:
'go get' wird korrekt aktualisiert die Abhängigkeitsdateien (go.mod, go.Summe).
Mehr Informationen: https://github.com/golang/go/wiki/Modules#how-to-upgrade-and-downgrade-dependencies
/commits
aber nicht unter/pulls
. Sehen mehr info hier: golang/go#31191 explizit filtert dieser Art begeht.Neben der Antwort von Everton auf mit
go get github.com/someone/some_module@af044c0995fe
um eine bestimmte commit-Sie können auch Markenbezeichnungen wie:go get github.com/someone/some_module@master
go get github.com/someone/some_module@dev_branch
Diese Beispiele Holen Sie sich die neueste commit auf den entsprechenden Zweig.
Es wird noch gezählt, wie ein pseudo-version in Ihrem
go.mod
- Datei, wiev0.0.0-20171006230638-a6e239ea1c69
. (Dies hilft dabei, eine einfache Summe der Bestellung über alle Versionen hinweg, basierend auf standard - semver Bestellung).replace
eine temporäre Abspaltung von einigen Abhängigkeiten, aber konnte nicht einen Weg finden, um die Ersetzung zu Punkt, um einige zu Begehen. Hatte eine version erstellt-tag und geben Sie es soreplace github.com/original/somelib => github.com/fork/somelib v1.2.3
, das ist ein bisschen zu viel, wenn ich nur mal schnell testen, Zeug.replace github.com/original/somelib => github.com/fork/somelib@commithash
undreplace github.com/original/somelib => github.com/fork/somelib commithash
funktionieren nicht