Код Visual Studio: Pu sh до git работает с терминала, но не при использовании пользовательского интерфейса - PullRequest
2 голосов
/ 24 января 2020

Работает Windows 8.1 64-битная со следующим установленным:

  • Git для Bash (v2.24.1. windows .2) с использованием MinGW-W64
  • Код Visual Studio (v1.41.1)

Мой личный ключ S SH (расположен по адресу %USERPROFILE%\.ssh) был создан и добавлен в мою учетную запись GitHub. .bashrc, расположенный в %USERPROFILE, был изменен для добавления этих строк:

# Start ssh-agent to allow git to be used
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa_personal

Я запускаю Git Bash (MINGW64) в репо git. Теперь внесите изменения в файл, git add, git commit и git push изменения в моем git репо ... и он работает отлично!

Для стандартной командной строки Windows я Вы создали файл с именем bashrc.cmd с таким кодом:

rem Start ssh-agent to use git from the Windows command line
set GIT_PATH=C:\Program Files\Git
call "%GIT_PATH%\cmd\start-ssh-agent.cmd"
call "%GIT_PATH%\usr\bin\ssh-add.exe" "%USERPROFILE%\.ssh\id_rsa_personal"

Теперь создано новое значение REG_SZ с именем AutoRun в ключе HKLM\SOFTWARE\Microsoft\Command Processor, которое указывает на указанный выше файл (bashrc.cmd)

Запустите командную строку, и теперь ssh-agent запущен, и моя личность добавлена. Как и Git Bash, add, commit и push работают отлично. Круто!

Теперь я загружаю код Visual Studio в моем репо git. В левом нижнем углу Код знает, что я нахожусь в репо git:

master branch of my repo

Используя встроенный терминал в коде, я могу add, commit и push меняются в моем репо git. Отлично!

Но теперь я пытаюсь сделать это с помощью кнопок интерфейса пользователя. Я могу подготовить и зафиксировать изменения и подтвердить в отдельной командной строке windows, используя git status, что они работают должным образом. Но когда я использую команду Push, я получаю эту ошибку:

Permission denied to git repo

Возврат в терминал кода или в командной строке Windows, или Git Bash, введите команду git push и изменения будут отправлены в удаленное хранилище правильно.

Почему это не работает с командой Code Push?

1 Ответ

3 голосов
/ 27 января 2020

После некоторых усилий я обнаружил ту же ошибку в своем коде Visual Studio, даже когда я пытался использовать команды ctrl+shift+p и git:pull, также выдает ту же ошибку, что и описание Permission Denied(publickey)

Я читаю здесь , это Seems VS Code uses 'id_rsa.pub' key only, и у меня другое имя для пар ключей, затем я копирую закрытый ключ и ключ publi c, который был установлен для репозитория git, в id_rsa и id_rsa.pub и снова я попытался проверить с помощью значков, а также из меню, и это работает без добавления в ssh-agent, потому что он ищет только ~ / .ssh / id_rsa в каталоге вашего профиля. Когда я удалил id_rsa, он выдает мне ту же ошибку, и терминал работает, как и ожидалось, с другим именем ключа, которое уже добавлено в s sh -агент.

Кроме того, git add . и git commit -m это команды, которые работают для локального, но не устанавливают sh соединение с удаленной веткой, но когда вы пытаетесь fetch, pull, push пытается подключиться к удаленному репозиторию, где требуется аутентификация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...