【发布时间】:2016-01-09 15:09:36
【问题描述】:
我有两个存储库 X 和 Y。Y 在其 package.json 中引用 X 以使用某些模块。 X 和 Y 有 master 分支,并且都部署到公共 npm-registery(我们称之为 2.0.0 版)。所以 repo Y 在其 package.json 中引用了 X 2.0.0。一切都很好。
现在,问题--
我在两个 repos 中都创建了一个新分支(我们称它们为 bX 和 bY)。这 2 个分支尚未准备好合并到其相应分支的主节点。因此我无法发布仅包含 bX 更改的 X 的新版本。或者我可以吗?
但我想将我在 bX 中所做的更改用于 bY。
当我四处搜索时,我发现我可以像这样在 Y 的 package.json 中提供 repo X 的 url -- https://github.com/url-to-repo/X.git#bX 并且当我使用它构建时它在我的本地系统中运行良好npm。但是当我将它与 jenkins build 一起用于测试环境时,它失败并出现以下错误--
请求的 URL 返回错误:访问时出现 403 https://github.com/url-to-repo/X.git/info/refs
而且这个问题似乎与以下有关--
请升级您的 git 客户端。 GitHub.com 不再支持 git over 哑-http: https://github.com/blog/809-git-dumb-http-transport-to-be-turned-off-in-90-days
我登录到 Jenkins 服务器并且 git 版本是 1.7.2.5(在 GitHub 中,转储 http 支持已被撤销,但这不会影响您,除非您运行 v1.6.6 之前的 git 版本并使用http 远程 URL -- 来自 github 文档)
所以我不明白这里出了什么问题。以前有人遇到过这个问题吗?
【问题讨论】:
-
你可以使用 ssh 网址吗?
-
而不是 http 网址?我没试过。让我现在试试。
-
@IonicăBizău 是的,它奏效了。非常感谢。你能把这个作为答案让我接受吗?另外,这是问题的实际解决方案还是变通方法?
-
太棒了!我发布了我的答案。作为附加信息,您能否告诉我 GitHub 存储库是否是私有的?也许您因为身份验证而得到 403。无论如何,我一直很喜欢使用 ssh 而不是 https 的 git。 :)
标签: git github jenkins npm package.json