#7: Git の設定、GPG key を GitHub に登録
GPG でのコミットへの署名、必要な手順が多いですね。
今日やったこと(Done)
$ gpg --version gpg (GnuPG) 2.2.21
$ gpg --full-generate-key # プロンプトに沿って入力していく # RSA - RSA # 4096 bit # id: ryocalm # mail: <my mail address>
$ gpg --list-secret-keys --keyid-format LONG $ gpg --armor --export <GPG key ID> | pbcopy
Git の設定。
# 自分のハンドルネーム、メールアドレスを設定した。 $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
# 改行コードの自動変換を無効にする。 $ git config --global core.autocrlf false
# GPG key の設定 $ git config --global user.signingkey <GPG key ID>
gpg-agent
, pinentry-mac
のインストール。
$ brew install gpg-agent pinentry-mac
エラーが出たけれど、gpg-agent
はインストールできたようだった。あらためて pinentry-mac
のインストールを試みる。
$ brew install pinentry-mac
~/.gnupg/
に gpg-agent.conf
を作成して以下の内容を入力する。
use-standard-socket pinentry-program /usr/local/bin/pinentry-mac
そして clone
したリポジトリに変更を加えて署名付きでコミットしてみたがエラーとなった。何か間違ったのだとしたら GPG key の作成だろうか。日を改めてまた試してみよう。
わかったこと(Fact)
Git
- Git の設定はシステム全体、ユーザーごと、リポジトリごとの 3 段階ある。
- それぞれ対象範囲が狭い方の設定が優先される。
--system
の/etc/gitconfig
よりも--local
の.git/config
の内容が適用される。 - Git で使うエディタを設定できる。
設定方法
Now that your identity is set up, you can configure the default text editor that will be used when Git needs you to type in a message. If not configured, Git uses your system’s default editor.
If you want to use a different text editor, such as Emacs, you can do the following:
$ git config --global core.editor emacs
- Git のコマンドについて help を見るやり方は 3 通り。
git help <verb>
(<verb>
は例えばadd
など)git <verb> --help
man git-<verb>
- もしフルの
man
ページではなく、ちょっとオプションを確認したいだけならコマンドの後に-h
をつければよい。- 例えば
git add -h
- 例えば
- ファイル名の大文字と小文字を区別するかどうか設定できる。
$ git config --global core.ignorecase false
GPG
GPG key の Git への設定
GPG キーのリストから、使いたい GPG キーの ID をコピーしてください。以下の例では、GPG キーの ID は
3AA5C34371567BD2
です:
$ 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
GPG 署名キーを Git に設定するには、以下のテキストの GPG キー ID を使いたいものに置き換えてペーストしてください。この例では、GPG キー ID は 3AA5C34371567BD2 です。
$ git config --global user.signingkey 3AA5C34371567BD2
from: Git へ署名キーを伝える - GitHub ヘルプ
参考文献(References)
Git
GPG
- Generating a new GPG key - GitHub Docs
- Git へ署名キーを伝える - GitHub ヘルプ
- GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
- git(GitHub)でGPGを使った署名をおこなう - Qiita
- GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog