2016-12-22 3 views
3

Интерфейс Via Git UI и Turtoise Я обновил локальные и удаленные репозитории GIT. Я хотел бы взаимодействовать с репозиториями gitlab.com в Android Studio и IntelliJ. Я продолжаю получать ошибки 401 или читать.IntelliJ и AndroidStudio - подключиться к репозиторию Gitlab.com

В IntelliJ Я попытался подключиться к удаленному репозиторию с помощью VCS> GIT> Remotes и добавил запись SSH gitlab.com. Также в Android Studio я не мог подключиться к удаленному репозиторию.

РЕШЕНИЕ: благодаря VonC. Ключи SSH, которые я зарегистрировал на Gitlab.com, были в моей папке c: \ users \ myusername \ .ssh. Через Turtoise и GIT UI я могу ссылаться непосредственно на эти файлы.

И Android Studio, и IJ IDE используют папку% HOME% для поиска ключей SSH. Эта папка может относиться к папке SSH системы. Поскольку в этой папке не было доступных ключей SSH, я продолжал получать ошибки подключения.

Решение было в создании командного файла (.bat), который выполняет следующие для IntelliJ:

set HOME=%USERPROFILE% 
c: 
cd "C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.3.1\bin" 
idea.exe 

И КАК:

set HOME=%USERPROFILE% 
c: 
cd C:\Program Files\Android\Android Studio1\bin 
studio64.exe 

ответ

1

Давайте проясним: если вы используете протокол HTTPS url и ваше имя пользователя/пароль GitLab.com, ваши ключи ssh имеют ничего, чтобы сделать с вашей попыткой подключения: эти ключи ssh (puttygen или not) будут проигнорированы.

Для https вам нужны ваши учетные данные учетной записи GitLab, и если ваш пароль GitLab имеет специальный символ, он должен быть percent encoded (like a @).

См. Также «Handling Passwords for Git Remote Repositories» (опять же, ничего общего с ssh).

Если вы выбираете «Clone Git репозитории с помощью SSH» (как в this answer), то, даже если Git не находит ваши ключи SSH (или if your public key is not properly registered in your GitLab account), SSH сможет Откат к схеме аутентификации имени пользователя/пароля.


Чтобы использовать SSH URLs в AS (Andoird студия):

  • убедитесь, чтобы запустить AS в сеансе CMD когда HOME (тип set HOME) установлен в %USERPROFILE%,
  • убедитесь, генерировали ключи openssh, как described by GitLab и зарегистрированы в вашем профиле GitLAb, опять как described by GitLab.
    Вы должны увидеть в %USERPROFILE%\.ssh (или %HOME%\.ssh) файлы id_rsa и id_rsa.pub. Нет ppk требуется ключ-ключ.

ОП добавляет:

Ах, %HOME% и %USERPROFILE% указали на разные места. Я установил id_rsa по адресу %USERPROFILE% и %HOME% указывает на системную папку.Итак, использование id_rsa.pub от C:\WINDOWS\system32\config \systemprofile также должно быть достаточным?

Фактически, если HOME указывает на системную папку, это означает, что AS работает с системной учетной записью или Git был установлен для системной учетной записи.
Не следует: HOME следует указывать на %USERPROFILE%, и убедитесь, что с вашей учетной записью запущен AS. В OP примечания:

HOME=%USERPROFILE% решение также отлично работает для IntelliJ, так что это не только для Android Studio.

+0

Для IntelliJ: Я создал локальные файлы, поставил и отдал их на местном уровне. Затем через VCS> Git> remote> я добавил строку Https. Затем я толкнул содержимое, и он работал нормально. ВОПРОС: где IntelliJ хранит пароль пользователя для использования этого приватного репозитория Giblab.com? – tjm1706

+0

Для Android Studio: я мог клонировать проект через New> Project из VCS> Git>, используя строку Https gitlab.com. Работал. Что делать, если у меня есть локальный репозиторий, как я могу сохранить его в удаленном репозитории в первый раз? В AS у меня нет опции «пультов». – tjm1706

+0

@ tjm1706 для вашего первого вопроса, Git для Windows поставляется с встроенной интеграцией с [хранилищем учетных данных Windows] (https://github.com/Microsoft/Git-Credential-Manager-for-Windows) ('git config - global credential.helper manager') – VonC

1

Я думаю, что вы ошибались в поддержке GitHub с плагинами проектов GitLab и попытке аутентификации в GitHub с использованием учетных данных GitLab. Поиск GitLab плагин, установить gitlab projects: enter image description here

и настроить его с помощью GitLab URL и ключ API, который можно найти в настройках аккаунта.

enter image description here

+0

Спасибо. Для Android Studio нет плагина 'gitlab'. Для IntelliJ существует только плагин интеграции «gitlab integration». Должен ли я использовать этот? – tjm1706

+0

@ tjm1706 Я использую Android Studio на скриншотах. Нажмите «Плагины» -> Обзор репозитория -> поиск GitLab. Я добавил еще один снимок экрана. в моем ответе. – agilob

+0

Работа с ключом API ... выполняется через Project> settings> Deploy keys? Какой из них использовать? В чем преимущество использования ключей API по ключам SSH или имени пользователя/пароля? – tjm1706

Смежные вопросы