メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

GitHubのコミット履歴にVerifiedマークを付けるためにGPGの設定をした (Windows編)

Mac編はこちら

ryoichi0102.hatenablog.com

Windows

GPGインストール

公式サイトよりダウンロードします。
ページ内の最初のリストはソースコードです。その次のリストがバイナリなので、この中から Simple installer for the current GnuPG をダウンロードします。

GnuPGのダウンロード

ダウンロードしたらインストーラー (gnupg-w32-2.2.13_20190212.exe) を起動します。ウィザードが立ち上がるので Next⇒Next⇒Install⇒Next⇒Finish って感じです。

インストールが完了したらコマンドラインを立ち上げてgpgコマンドを打ってみます。

C:\Users\my-user-name> gpg
gpg: keybox'C:/Users/my-user-name/AppData/Roaming/gnupg/pubring.kbx'が作成されました
gpg: *警告*: コマンドが指定されていません。なにを意味しているのか当ててみます ...
gpg: 開始します。メッセージを打ってください ...

^C

後の手順は先日書いたMacでの手順と"ほぼ"同じです。同じな部分は箇条書きで紹介。

  • gpg --full-generate-key
  • gpg --list-secret-keys --keyid-format LONG
  • gpg --armor --export ○○○
  • 結果をコピーしてGitHubのSettings⇒SSH and GPG keys⇒New GPG Key
  • git config --global user.signingkey ○○○
  • git config --global commit.gpgsign true

っときっとここまでは順調に進むと思いますが、コミットしようとすると次のようなメッセージが出ることがあります。

> git commit -m "test"
gpg: skipped "8H7G6F5E4D3C2B1A": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object

ぐぬぬこれだからWindowsは…

解決方法はgitの設定でgpg.programにgpg.exeの場所を教えてあげる必要があります。

> git config --global gpg.program "C:\Program Files (x86)\gnupg\bin\gpg.exe"

これでWindowsでも無事にVerified署名付きでコミットできました!

参考

stackoverflow.com