VS 2015 + Bower:在防火墙后面不起作用

Sea*_*een 33 git firewall git-config bower visual-studio-2015

问题

在Visual Studio 2015中,使用bower,我的包恢复在防火墙后面失败,错误类似于:

ECMDERR无法执行"git ls-remote --tags --heads git://github.com/jzaefferer/jquery-validation.git",退出代码#-532462766

我已经更新了我的git配置http而不是git.当我从命令行运行时,命令成功:

在此输入图像描述

但Visual Studio或其中一个组件似乎是使用git而不是http.

背景和第一次尝试解决

使用Visual Studio 2015和Bower进行包管理.当它不在防火墙后面时效果很好,但是当在防火墙后面时,我无法使用该git://协议.

在SO(示例)的许多其他地方记录的解决方案是运行:

git config --global url."http://".insteadOf git://
Run Code Online (Sandbox Code Playgroud)

我这样做了,现在git config -l看起来像:

ore.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Sean Killeen
user.email=SeanKilleen@gmail.com
url.http://.insteadof=git://
Run Code Online (Sandbox Code Playgroud)

但是尽管如此,Visual Studio/npm还是不尊重我的配置,或者使用旧的缓存版本.

第二次尝试解决

根据npm问题的这个帖子,我看到npm(可能是bower在VS中使用的)使用了git@语法.即使这不是我在输出中看到的,我想我会试一试.

我跑了:

git config --global url."https://github.com/".insteadOf git@github.com:
Run Code Online (Sandbox Code Playgroud)

然后我重新启动Visual Studio,但问题仍然存在.我读到的修复可能永远不适用.

有关如何修复的任何想法?

Rog*_*res 61

使用VS 2015的同样问题,我的解决方法:

  1. 安装Git

    http://git-scm.com/

  2. 配置Git使用http代替git://和Git Bash

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

    编辑(如g.pickardou指出)您可以使用https更安全:

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

  3. 配置VS以使用新安装的Git over VS Git

    右键单击Bower文件夹(在Dependencies下),然后选择"Configure external tools"

    取消选中"$(DevEnvDir)\ Extensions\Microsoft\Web Tools\External\git"

    使用"C:\ Program Files(x86)\ Git\bin"添加新节点

希望这会对某人有所帮助,

罗杰里奥

  • 最好在答案中推荐https(而不是http) (3认同)
  • 本答案中步骤3的注意事项:在VS中,您必须导航到工具>选项>项目和解决方案>外部Web工具 (2认同)

Bre*_*ttJ 13

微软安装的git版本(至少使用VS2015 Update 1)确实支持 .gitconfig文件,但默认情况下安装的工具并没有给你一种操作方法(就像所有其他答案显示使用git config一样)解决问题).

要解决问题而不需要任何额外的安装和诸如此类的东西,只需在C:\ Users\YourUserName中创建一个.gitconfig文件并将此内容放在那里(这是git config --global会做的内容,但是因为你没有git .exe可以更改配置,你不能使用它而不安装其他你不需要的东西)


    [url "https://github.com/"]
        insteadOf = git@github.com:
    [url "https://"]
        insteadOf = git://


小智 7

VS2015 Release对我有用的解决方案是:

  1. 安装git命令行工具.
  2. 使用以下内容修改文件C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\bower.cmd:

    set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
    git config --global url."http://".insteadOf git://
    git config -l
    @"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*
    
    Run Code Online (Sandbox Code Playgroud)


小智 6

我有同样的问题.显然,VS2015 CTP附带的Git.exe不使用.gitconfig.但是,如果您在其他地方安装了git命令行工具,则可以(手动)修复它.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External您需要编辑文件bower.cmd.

评论第4和第5行:

rem -- set GIT_PATH=%~dp0\git
rem -- set PATH=%GIT_PATH%;%PATH%`
Run Code Online (Sandbox Code Playgroud)

这将触发命令以使用您已安装的Git,这将获取本地.gitconfig.

确保您已设置适当的git设置:

git config --global url."http://".insteadOf git://
Run Code Online (Sandbox Code Playgroud)


小智 6

使用VS 2015,Update 2:只需安装Git即可

http://git-scm.com/

  • 像梦一样工作.安装Git后重新启动VS. (2认同)