Bower仅使用https安装?


257

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

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

我查看了源代码,并考虑了更改分辨率代码以替换git://https://,但我认为在问这些长度之前我会先询问一下。


Answers:


629

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

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

使用HTTPS协议而不是Git。


13
我真的很傻 我一直在尝试.insteadOf之前的命令部分,以为@Sindre告诉我们使用git而不是 git。这些类似英语的命令令我深感遗憾。
2013年

99
如果其他人应用了此答案,然后git config --global --unset url."https://".insteadOf
又想

21
您也可以省略--global,它将配置添加到本地.git/config
Helder S Ribeiro 2014年

24
在Windows计算机上,全局配置文件是用户主文件夹下的.gitconfig,例如C:\ Users [username]。但是,如果未定义%HOME%,则git将使用%HOMEDRIVE%,而来自Bower的git将使用%USERPROFILE%。而这两个变量可能不同。在我的机器上,一个是U :,另一个是C:\ Users \ myusername。因此,无论我如何尝试,凉亭仍然使用git://。我花了一段时间才弄清楚这一点。所以写下来,以防有人陷入同样的​​境地。
AnthonyY 2014年

2
@VincentGauthier在Windows中,启动系统属性->高级->环境变量-> SystemVariables->新建->添加一个名为HOME的变量并将其值设置为所需的路径
Nick

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
}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.