Фиксируйте подпись, используя sourcetree на windows
В настоящее время (13 февраля 2018 г.) Sourcetree поддерживает подписание коммитов только в версии для Mac.
И из этого вопроса (с 2013 года) подпись коммита до сих пор недоступна в версии Windows.
Так можно ли подписать коммит в Windows-версии sourcetree?
2 ответа
Ну, ответ да и нет.
Обходной путь, который я понял, заключается в следующем (я предположил, что вы уже настроили ключ GPG, если не следуете руководству github по его настройке)
Шаг 1 Установите оболочку git для Windows
(Если вы еще этого не сделали)
Шаг 2 Убедитесь, что sourcetree использует системный git
Нажмите ctrl+,
перейдите на вкладку git и нажмите Use System Git
Шаг 3 Сконфигурируйте git для подписи каждого коммита (необязательно)
Из powershell (или вы можете использовать встроенный терминал из terminal
значок в исходном дереве).
Войти git config commit.gpgsign true
- это настроит git на автоматическую подпись всех коммитов в CURRENT репозитории.
Если вы хотите подписывать каждый коммит в КАЖДОМ хранилище git config --global commit.gpgsign true
вместо.
Примечание. Если вы решили пропустить шаг 3, обязательно добавьте -S
каждый раз, когда вы делаете git commit -S
) или ваш коммит не будет подписан.
недостаток
Конечно, у этого способа есть недостаток.
Каждый раз, когда вы совершаете. Вы должны сделать это в терминале. Если вы попытаетесь выполнить фиксацию с помощью кнопки фиксации в sourcetree, произойдет ошибка
gpg: cannot open tty `no tty': No such file or directory
error: gpg failed to sign the data
fatal: failed to write commit object
Кроме того, вы можете использовать любые другие функции, которые есть у sourcetree (push, pull, fetch, merge и т. Д.), Как обычно.
Изменить: этот недостаток был решен ответом Ахмада.
У меня была похожая проблема, и я следовал за @theminer3746, чтобы настроить ее.
Мне удалось исправить ошибку tty и у меня есть диалоговое окно для ввода пароля, используя следующие шаги
- Установите: https://www.gpg4win.org/
- Загрузить ключи в программу Kleopatra
([Your homedir]/.gnupg/secring.gpg)
- Запустите эту команду в вашем терминале:
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"
Если вы еще не создали ключ GPG, перейдите к руководству github по ключам GPG здесь.
Откройте Sourcetree и нажмите кнопку "Терминал" в правом верхнем углу. Нажмите на значок терминала (мне не хватает очков репутации, чтобы опубликовать изображение. Я обновлю изображение, когда получу достаточно очков репутации:)).
Введите следующие команды
$ git config commit.gpgsign true
Вам нужен ключ подписи GPG, чтобы подписать коммит. Проверьте существующие ключи с помощью следующей команды
$ gpg --list-secret-keys --keyid-format LONG
Например, если ваш вывод
/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10
3AA5C34371567BD2 - ваш ключ подписи.
Затем выполните следующую команду
$ git config commit.signingkey YOUR_KEY_HERE
Если вы хотите подписать каждый репозиторий, то добавьте --global
Отметить вышеупомянутые команды. Например,
$ git config --global commit.gpgsign true
$ git config --global commit.signingkey YOUR_KEY_HERE
Нет необходимости загружать любое другое программное обеспечение для подписания ваших коммитов.
Способ 2
Откройте ваш конфигурационный файл в папке.git вашего репозитория. И добавьте / обновите следующие параметры.
[commit]
gpgsign = true
signingkey = YOUR_KEY_HERE
Попробуйте зафиксировать после обновления вышеупомянутых опций.