去,去获取,去安装,本地软件包和版本控制

我在理解创建具有本地程序包的go项目的工作流程时遇到了麻烦。


假设我创建了一个新项目,使用git进行版本控制,它有一个main.go文件和一个tools.go文件,这些文件将在utils包中。所以我有一个这样的目录结构:


/myproject/

   main.go

   utils/

     tools.go

main.go看起来像这样:


package main

import "./utils"

func main() {

    utils.DoSomthing()

}

和tools.go看起来像这样:


package utils;

func DoSomething() {

}

使用go build和go run在本地一切正常。但这是托管在github上的,我希望能够让其他人使用go get命令来安装它。因此,必须将本地程序包导入更改为使用“ github.com/user/project/utils”格式,该格式可以正常工作,但现在我有两个源代码副本,真正的问题是该副本带有git历史记录具有使用下载的副本的导入。因此,如果我使用git历史记录来处理副本,则对tools.go所做的任何更改都不会引起注意,因为它将使用下载的副本。


所以我想知道是否有人可以解释在同一项目中使用go get,版本控制和包导入的正确方法。


犯罪嫌疑人X
浏览 196回答 3
3回答

慕姐8265434

如果要将代码保留在本地版本存储库中,只需将代码放在GOPATH中即可。GOPATH接受多个路径。例如。在Linux上GOPATH=$HOME/go:$HOME/prj/foo因此,您可以将第3方软件包安装在$ HOME / go / src / ...中,并且可以将代码控制在$ HOME / prj / foo / src中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go