Ab Version 1.11 Go wurde Unterstützung für Module hinzugefügt. Befehle
go mod init <package name>
go build
würde generieren go.mod
und go.sum
Dateien, die alle gefundenen Versionen für die Paketabhängigkeiten enthalten.
Wenn ein Modul keine Releases hat, wird das neueste Commit dieses Moduls verwendet. Wenn ein Modul Releases hat, wird das neueste als Abhängigkeit ausgewählt.
Manchmal benötige ich jedoch Funktionen, die noch nicht in einer veröffentlichten Version enthalten sind, sondern aus einem nach dieser Version vorgenommenen Commit. Wie kann ich festlegen go.mod
, dass nicht auf eine Version eines Moduls, sondern auf ein bestimmtes Commit im Repository des Moduls verwiesen wird?
Es sieht so aus, als ob ich es in go.mod mit von Hand machen kann
module /my/module
require (
...
github.com/someone/some_module v0.0.0-20181121201909-af044c0995fe
...
)
Wo v0.0.0
entspricht nicht dem zuletzt veröffentlichten Release-Tag, 20181121201909
wäre ein Commit-Zeitstempel und af044c0995fe
wäre der Commit-Hash? Sollten solche Informationen von Hand gefunden und eingegeben werden, oder gibt es einen besseren Weg?
/commits
, aber nicht unter/pulls
. Weitere Informationen finden Sie hier: golang / go # 31191 filtert diese Art von Commits explizit heraus.