Bower установить, используя только https?

257

Я пытаюсь настроить Bower на сервере сборки в центре обработки данных нашей организации, но gitпорт не открыт в брандмауэре центра обработки данных. Я могу использовать клиент командной строки git для клонирования через https://[repo], но не git://[repo].

Есть ли переключатель или предпочтение, которые будут указывать бауэру использовать git-клон, httpsа не gitпротокол?

Я посмотрел на источник и подумал об изменении кода разрешения для замены git://на https://, но я решил спросить, прежде чем перейти к этим длинам.

arootbeer
источник
2
возможный дубликат git: конвертируйте URL-адреса "git" в URL-адреса "http"
Rémi Becheras

Ответы:

629

Вы можете заставить git заменить протокол для вас. Просто беги:

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

использовать протокол HTTPS вместо Git.

Синдре Сорхус
источник
13
Я чувствую себя действительно глупым. Я продолжал пробовать часть команды до .insteadOf, думая, что @Sindre говорит нам использовать git вместо git. Боже мой, эти английские команды.
Визг
99
В случае, если кто-то еще применяет этот ответ, а затем задается вопросом, как git config --global --unset url."https://".insteadOf
отменить
21
Вы также можете опустить, --globalи это добавит конфигурацию к локальной .git/config.
Хелдер С Рибейро
24
На компьютере с Windows файл глобальной конфигурации - это .gitconfig в домашней папке пользователя, например, C: \ Users [имя пользователя]. Однако, если% HOME% не определен, git будет использовать% HOMEDRIVE%, а git из bower будет использовать% USERPROFILE%. В то время как эти две переменные могут быть разными. На моем компьютере один U: другой C: \ Users \ myusername. Так что беседка все еще использовала git: // что бы я ни пытался. Мне понадобилось время, чтобы понять это. Поэтому запишите это на случай, если кто-нибудь попадет в ту же ситуацию.
AnthonyY
2
@VincentGauthier В Windows запустите «Свойства системы» -> «Дополнительно» -> «Переменные среды» -> «Системные переменные» -> «Создать» -> Добавить переменную с именем «HOME» и установить ее значение по желаемому пути
Ник
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
}
quickshiftin
источник
1

Работал для меня git config --global url."git://".insteadOf https://

Mansoorulhaq Mansoor
источник