Подписание коммитов Git в удаленном сеансе VSCode
В настоящее время я разрабатываю код на удаленном сервере с помощью функции удаленного SSH Visual Studio Code для удаленного редактирования кода с помощью VSCode, который работает на моем локальном компьютере. На локальном компьютере установлена Mac OS X Catalina 10.15.5, а на удаленном сервере - Ubuntu 20.02 внутри WSL2.
Когда я пытаюсь создать обычную фиксацию в VSCode, он работает должным образом. Однако, когда я пытаюсь автоматически подписать фиксацию, после нажатия кнопки "фиксация" в VSCode появляется следующая ошибка:
Git: gpg не удалось подписать данные
Чтобы удаленно создать подписанный коммит, мне пришлось запустить в терминале VSCode следующее:
git commit -S -m "my commit msg"
который вызывает полноэкранный интерфейс в терминале
┌────────────────────────────────────────────────────────────────┐
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "Nyxynyx <my-email@gmail.com>" │
│ 4096-bit RSA key, ID B22A24D512345678, │
│ created 2001-01-08. │
│ │
│ │
│ Passphrase: ****************__________________________________ │
│ │
│ <OK> <Cancel> │
└────────────────────────────────────────────────────────────────┘
Ввод правильной парольной фразы позволяет подписать фиксацию.
Вопрос: Есть ли способ создать подписанный коммит, используя только пользовательский интерфейс VSCode и без использования терминала?
1 ответ
Покопавшись, я нашел два решения:
- Если вы используете VSCode в Windows, а проект находится на WSL2
Здесь у вас есть доступ к вашему диску C:, и вы можете отредактировать файл ~ / .gitconfig и установить для gpg.program то же значение, которое вы используете в Windows, например:
[gpg]
program = /mnt/c/Program Files (x86)/GnuPG/bin/gpg.exe
- Вы работаете с VSCode в некоторой удаленной рабочей области.
Единственное решение, которое я нашел, помимо использования терминала, - это установка расширения под названием « vscode-gpg-indicator ». Следуйте инструкциям, и вы получите шкафчик в строке состояния, где вы сможете разблокировать ключ GPG перед началом фиксации.