Проблема
В 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://
Я сделал это, и теперь мой 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://
Но, несмотря на это, либо Visual Studio / npm не соблюдает мою конфигурацию, либо использует старую кэшированную версию.
Вторая попытка решения
В этой ветке по проблеме npm я увидел, что npm (предположительно bower используется в VS) использует синтаксис git@
. Несмотря на то, что это не то, что я увидел на выходе, я решил, что попробую.
Я побежал:
git config --global url."https://github.com/".insteadOf git@github.com:
Затем я перезапустил Visual Studio, но проблема не исчезла. Исправление, о котором я читал, вероятно, никогда не применимо.
Есть идеи, как исправить?
11 ответов
Та же проблема с VS 2015, мое решение:
Установить Git
Настройте Git для использования http вместо git: // с Git Bash
git config --global url. "http: //". вместо git: //
Изменить (как указано g.pickardou), вы можете использовать https для большей безопасности:
git config --global url. " https : //" .insteadOf git: //
Настройте VS для использования нового установленного Git поверх VS Git
Щелкните правой кнопкой мыши папку Bower (в разделе «Зависимости»), затем выберите «Настроить внешние инструменты».
Снимите флажок "$ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External \ git"
Добавьте новый узел с "C: \ Program Files (x86) \ Git \ bin"
Надеюсь, это кому-то поможет,
Рожерио
Если вам нужно глобальное решение .
ВНИМАНИЕ : это может повлиять на несколько настроек прокси через разные приложения, но это определенно то, что вам нужно :)
ПРИМЕЧАНИЕ Если у вас есть специальные символы в вашем имени пользователя: пароль в настройках вашего прокси-сервера, вам необходимо их URLENCODED. Пример: http: // DOMAIN% 5Cuser + name% 3AP %40%24%24w0rd@proxy.server.com: 8080
Вы должны добавить 2 переменные среды.
- HTTP_PROXY: http: // proxyuser: proxypwd@proxy.server.com: 8080
- HTTPS_PROXY: http: // proxyuser: proxypwd@proxy.server.com: 8080
Для этого в Windows 10:
- НАЧАЛО
- Искать "Изменить системные переменные среды"
- (в расширенной вкладке свойств системы) нажмите «Переменные среды ...)
- (в системной переменной) нажмите "Создать ..."
- Создать переменную (имя переменной: HTTP_PROXY, значение переменной: http: // proxyuser: proxypwd@proxy.server. com: 8080)
- Создать переменную (имя переменной: HTTPS_PROXY, значение переменной: http: // proxyuser: proxypwd@proxy.server. com: 8080)
- Перезагрузите Windows
Запуск VS Bower из командной строки с подключенной домашней папкой
Ответ, данный @Rogerio Soares, хорош, и я думаю, что многие люди найдут его очень полезным (включая меня).
Тем не менее, здесь, на работе, инструменты, которые я могу установить, очень, очень ограничены (это означает, что я не могу установить другую версию Bower без разрешения многих людей), плюс мой домашний каталог сопоставлен с общим сетевым ресурсом в z:\
политикой. Каждый раз, когда я запускал git config --global
для настройки git, настройки конфигурации помещались в z:\.gitconfig
. Этот файл конфигурации отлично обрабатывается при использовании полномасштабного Git SCM. Однако очевидно, что для libgit2sharp (используемого версией Git, встроенной в Visual Studio 2015) этот файл должен находиться по адресу c:\username\.gitconfig
.
Итак, после копирования моего файла .gitconfig
из z:\
в c:\username\
я смог запустить версию bower для Visual Studio прямо из командной строки.
Если у вас есть дружелюбный администратор брандмауэра, попросите его разрешить доступ к внешним репозиториям git, определив следующую политику брандмауэра:
TCP 9418 (UDP не требуется)
У меня была такая же проблема в Visual Studio 2015 RC (не CTP). Поскольку это единственная соответствующая тема, которую я где-либо нашел, решил добавить сюда свой 2c.
Расширяя ответ @ MagicMau, можно сказать, что строки в bower.cmd, на которые есть ссылка, не существуют в 2015 RC, поэтому я применил другой подход и установил переменную env PATH, так что теперь весь мой файл bower.cmd выглядит так:
set PATH=C:\Program Files (x86)\Git\bin\;%PATH%
@"%~dp0\node\node" "%~dp0\bower\node_modules\bower\bin\bower" %*
Обратите внимание, что первая строка - это то, что я добавил, а вторая строка - это существующий контент.
В первый раз, когда я сделал это, Visual Studio вылетела во время восстановления пакета, но, похоже, работает после перезапуска VS.
Самый простой ответ, который определенно работает, здесь. У меня сильно заболела эта проблема. Просто скачайте git и установите его. При установке выберите этот вариант. Запустите Git из командной строки Windows
У меня была такая же проблема в Visual Studio 2015 RC (не CTP), и я решил ее.
Bower.cmd в 2015 RC не работает должным образом, поэтому мне пришлось отключить его в моем VS и использовать официальный, установленный на моем ПК. Это легко сделать, просто щелкните правой кнопкой мыши папку «Bower» в проекте и выберите «настроить внешние инструменты», затем снимите флажок с раздела «$ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External \ git».
Вам также может потребоваться изменить файл ".bowerrc", чтобы GIT работал по правильному пути для вашего проекта.
После этого все работает как положено.
У меня такая же проблема. Очевидно, Git.exe, с которым поставляется VS2015 CTP, не использует .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%`
Это запустит команду для использования уже установленного Git, который подберет локальный файл .gitconfig.
Убедитесь, что вы установили соответствующий параметр git:
git config --global url."http://".insteadOf git://
Решение, которое сработало для меня с выпуском VS2015, заключается в следующем:
- Установите инструмент командной строки git.
Измените файл 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" %*
Установленная версия git от Microsoft (по крайней мере, с обновлением VS2015 Update 1) поддерживает файл .gitconfig, но инструменты, установленные по умолчанию, не дают вам возможности манипулировать им (как и все другие ответы показывают использование git config для устранения проблемы).
Чтобы решить эту проблему без дополнительных установок и прочего, просто создайте файл .gitconfig в C: \ Users \ YourUserName и поместите туда это содержимое (это содержимое, которое будет делать git config --global, но поскольку у вас нет git .exe, который может изменять конфигурацию, вы не можете использовать его, не установив что-то еще, что вам действительно не нужно)
[url "https://github.com/"] insteadOf = git@github.com: [url "https://"] insteadOf = git://
Похожие вопросы
Связанные вопросы
Новые вопросы
git
Git — это распределенная система контроля версий с открытым исходным кодом (DVCS). Используйте этот тег для вопросов об использовании Git и рабочих процессах. Не используйте этот тег для общих вопросов по программированию, связанных с репозиторием Git. Не используйте этот тег для вопросов GitHub/GitHub Actions, не связанных с использованием git; вместо этого используйте [github] или [github-actions]. Не используйте тег [github] для проблем, связанных с Git, только потому, что репозиторий размещен на GitHub.