256

我正在尝试在我们组织的数据中心的构建服务器上设置 Bower,但git在数据中心的防火墙上似乎没有打开的端口。我可以使用 git 命令行客户端通过 克隆https://[repo],但不能git://[repo]

是否有一个开关或首选项会指示 bower 使用https而不是git协议执行 git clone ?

我已经查看了源代码,并考虑将分辨率代码更改为替换git://https://,但我想我会在进行这些长度之前询问。

4

3 回答 3

627

您可以让 git 为您替换协议。赶紧跑:

git config --global url."https://".insteadOf git://

使用 HTTPS 协议而不是 Git。

于 2013-03-28T14:48:27.020 回答
2

基于@Sindre 的答案,我在 BASH 中编写了一个小辅助函数,该函数位于我的~/.bashrc文件中。像你一样调用它grunt,只是现在它被调用了nngrunt。享受!

function nngrunt
{
    # Add a section to the global gitconfig file ~/.gitconfig that tells git to
    # go over http instead of the git protocol, otherwise bower has fits...
    # See http://stackoverflow.com/questions/15669091/bower-install-using-only-https
    git config --global url."https://".insteadOf git://

    # Run grunt w/ any supplied args
    grunt "$@"

    # Now cleanup the section we added to the git config file
    # Of course we have our own extra cleanup to do via sed since the unset command
    # leaves the section around
    # See http://git.661346.n2.nabble.com/git-config-unset-does-not-remove-section-td7569639.html
    git config --global --unset url."https://".insteadOf
    sed -i 's/\[url "https:\/\/"\]//' ~/.gitconfig
    sed -i '/^$/d' ~/.gitconfig
}
于 2015-12-10T22:52:36.820 回答
0

为我工作 git config --global url."git://".insteadOf https://

于 2018-08-05T04:39:37.727 回答