Golang中的版本控制第三方软件包

I am using third party packages in golang and I want to add them to my git repository and when I type the command git add . it is giving me the following error

warning: adding embedded git repository: github.com/beorn7/perks
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint: 
hint:   git submodule add <url> github.com/beorn7/perks
hint: 
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint: 
hint:   git rm --cached github.com/beorn7/perks
hint: 

How to make sure that I am version controlling packages correctly and Am I doing the right way of version controlling my third-party packages?

Here is my project structure

Project/
|
src/
  |
   github.com/
      |
      packages/

My GOPATH is also pointing to project directory

git
dqq9695
dqq9695 使用标准的godep工具。不要打架。
大约 2 年之前 回复

1个回答



据我了解,您没有使用任何包管理器,而是将包导入到$ GOPATH中。 我建议您使用像 dep </ code>这样的包管理器,它会构建包含所有依赖项的 vendor </ code>目录。 当您运行 dep确保</ code>时,它将遍历您的代码并自动提取所有依赖项。</ p>

编辑:
由于@jubobs,从go1.11开始,您可以使用< code> go mod </ code>。 基本前提与 dep </ code>相同。</ p>
</ div>

展开原文

原文

From what I understand you don't use any package manager, instead you import packages to your $GOPATH. I would advise you to use package manager like dep which builds vendor directory containing all dependencies. When you run dep ensure it will go through your code and pull all the dependencies automatically.

Edit: As @jubobs since go1.11 you can use go mod. Basic premise is the same as dep.

dougu8742
dougu8742 如果您担心软件包被删除,则可以将其下载到$ GOPATH中,然后通过在每个项目的内部复制它们来手动创建供应商文件夹。 尽管我强烈建议不要这样做。
大约 2 年之前 回复
dtd793353
dtd793353 我认为dep无效,因为您在Project /中也有$ GOPATH项目。 Go对于项目的结构有非常明确的指导。 每个项目至少应驻留在Project / src文件夹中。
大约 2 年之前 回复
dongyan7950
dongyan7950 如果我使用dep,以及第三方软件包所有者删除该仓库,会发生什么情况。 如果要在其他版本中使用我的项目,将如何dep下载该软件包?
大约 2 年之前 回复
doujiong9915
doujiong9915 感谢您的答复,我确实尝试使用dep,但是在运行dep init时出现以下错误:“ init失败:无法确定根项目Project / src的导入路径:dep当前不支持使用GOPATH / src作为 项目根目录”
大约 2 年之前 回复
douyanzan9145
douyanzan9145 没有提到Go 1.11模块吗?
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐