以下是使用 git repo 设置新的最小 Go 模块项目、提交并使用带注释的语义版本标记对其进行标记的 bash 步骤:
mkdir gotest
cd gotest
git init
go mod init test.org/simple
cat <<EOT >> app.go
package main
import (
"fmt"
"runtime/debug"
)
func main() {
fmt.Println("hello world")
if bi, ok := debug.ReadBuildInfo(); ok {
fmt.Printf("version=%v. sum=%v\n", bi.Main.Version, bi.Main.Sum)
} else {
fmt.Println("Failed to get build info")
}
}
EOT
echo "simple" >> .gitignore
git add go.mod app.go .gitignore
git commit -am "initial commit"
git tag -am "initial semantic version" v0.1.0
快速验证它的标记是否正确:
git tag -n
git describe --dirty
构建并运行:
go build
./simple
这会产生:
hello world
version=(devel). sum=
我希望看到我标记存储库的语义版本。相反,我得到了虚拟占位符版本。怎么了?