Golang中如何从GitHub仓库的另一个分支导入模块

Golang中如何从GitHub仓库的另一个分支导入模块

如何从GitHub仓库的另一个分支导入模块

我想使用GitHub上的一个模块,这个模块在另一个分支里。

我正在尝试使用Fyne在Go中创建用户界面,但在运行go run时遇到了这个错误:

go run main.go 
Fyne error:  window creation error
Cause: VersionUnavailable: GLX: Failed to create context: GLXBadFBConfig
At: /home/kefd/go/pkg/mod/fyne.io/fyne/v2@v2.1.1/internal/driver/glfw/driver.go:121

我发现如果我使用develop分支,这个OpenGL问题就能解决。我该如何使用它呢?

GitHub

GitHub - fyne-io/fyne at develop

develop

受Material Design启发的Go语言跨平台GUI

github.com/fyne-io/fyne

回退到OpenGL 2.0

fyne-io:developfyne-io:downgrage_opengl

我们并未使用任何3.x特有的功能,因此让我们来提升兼容性。

修复 #148


更多关于Golang中如何从GitHub仓库的另一个分支导入模块的实战教程也可以访问 https://www.itying.com/category-94-b0.html

4 回复

感谢分享这些信息,这很有用,请继续保持。

// 代码示例
func main() {
    fmt.Println("hello world")
}

更多关于Golang中如何从GitHub仓库的另一个分支导入模块的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


实际上,你最好将它们排除在 git 之外,因为它们通常体积庞大(包含大量小文件,这会使你的 git 操作变得繁重/缓慢)。package.jsonpackage-lock.json 文件应该足以让这些依赖项能够被轻松地重新下载。

你可以使用 https://gitignore.io 来创建一个基于你所使用的技术和开发工具的 .gitignore 文件。如果你在列表中添加 “npm”,它就会将 node_modules 添加到排除的文件列表中。

你好 @kefd

你可以通过 go get 手动检出该分支:

go get fyne.io/fyne/v2@develop

(另请参阅模块规范中的将分支和提交映射到版本。)

然后,go.mod 会包含一个 require 指令,其中包含一个映射到最新提交的生成伪版本,例如:

require fyne.io/fyne/v2 v2.1.2-0.20211031193424-ac6dfb40fa87 // indirect

在Go中,你可以通过指定分支名来导入GitHub仓库的特定分支。在你的go.mod文件中,使用replace指令将标准版本替换为特定分支,然后运行go mod tidy来同步依赖。

以下是具体步骤:

  1. 初始化模块(如果尚未初始化):
go mod init your-module-name
  1. go.mod中添加replace指令
module your-module-name

go 1.16

require fyne.io/fyne/v2 v2.1.1

replace fyne.io/fyne/v2 => github.com/fyne-io/fyne/v2 develop
  1. 运行go mod tidy
go mod tidy

这会从develop分支拉取代码并更新go.sum文件。

示例代码

package main

import (
    "fyne.io/fyne/v2/app"
    "fyne.io/fyne/v2/container"
    "fyne.io/fyne/v2/widget"
)

func main() {
    myApp := app.New()
    myWindow := myApp.NewWindow("Hello")

    hello := widget.NewLabel("Hello Fyne!")
    myWindow.SetContent(container.NewVBox(
        hello,
        widget.NewButton("Hi!", func() {
            hello.SetText("Welcome :)")
        }),
    ))

    myWindow.ShowAndRun()
}

注意:使用分支导入时,Go工具链会从该分支的最新提交获取代码。这适用于测试或临时修复,但在生产环境中建议使用稳定的版本标签。

回到顶部