首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go工作区问题:如何将本地包与远程包区别开来?

Go工作区问题:如何将本地包与远程包区别开来?
EN

Stack Overflow用户
提问于 2014-12-03 13:59:05
回答 1查看 219关注 0票数 3

我的gopath指向$HOME/go目录。我有一些我不想在github或其他任何地方分享的个人软件包(目前为止)。然而,当我尝试用go get -u all更新远程包时,我得到:

代码语言:javascript
复制
# cd /home/go/src/marcio/somePackage; git pull --ff-only
fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
package code.google.com/p/go.tools/astutil
        ...
        long list of dependencies
        ...
        imports marcio/somePackage: exit status 1

这很让人困惑。如何告诉go get将我维护的包与用作依赖关系的包区别开来?为什么go工具认为所有东西都必须从远程源获取?

更新:

看起来,Go工作区强制您将依赖项与用户维护的代码混合使用。这看起来很不稳定。有时,有些人想要清除未使用的垃圾袋,并冒着擦错文件夹或未承诺的东西的风险,还有许多其他问题.是否有任何方法将用户维护的包与远程获取的依赖分离?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 14:25:56

go get -u被设计为通过VCS获取更新。如果您想有选择地更新包,则必须使用更具体的标识符。您还可以使用...通配符。

例如,这将尝试更新github.com中的所有包:

代码语言:javascript
复制
go get -u github.com/...

不过,通常情况下,我将避免盲目地更新所有内容,因为这会使跟踪依赖项是否破坏了某些内容变得更加困难,因为您目前没有使用的无关项目也会更新它们的依赖项。

最新答案:

虽然您可以使用多个GOPATH(它们是冒号分隔的,就像PATH一样),但是不要这样做;它会造成比它更有帮助的问题。使用单个GOPATH,更好的是,每个项目使用一个GOPATH。这样您就可以更新依赖项而不会影响其他项目。有一些可以帮助解决这个问题的实现工具(例如戈德普)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27273588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档