Фиксируйте подпись, используя 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

Попробуйте зафиксировать после обновления вышеупомянутых опций.

Другие вопросы по тегам