Bagaimana cara menandatangani komit dengan magit secara otomatis?

13

Saya tertarik untuk membuat setiap komitmen saya ditandatangani dengan kunci GPG saya. Karena saya menggunakan magit untuk berinteraksi dengan git, saya bertanya-tanya apakah memberitahu magit untuk menandatangani setiap komit dimungkinkan (atau beberapa solusi untuk mencapai ini layak, setidaknya).

shackra
sumber
Apakah Git bahkan mendukung penandatanganan komitmen? Saya pikir hanya tanda yang dapat ditandatangani ...
lunaryorn
1
@Lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]. Setidaknya ada satu alasan untuk menandatangani setiap komitmen: untuk memiliki bukti yang lebih kuat bahwa komitmen tersebut berasal dari orang yang menurut Anda melakukannya. Menandatangani tag hanya memungkinkan Anda mendeteksi perubahan riwayat.
Nsukami _
@Nsukami_That itu tidak menjawab pertanyaan saya, bukan?
lunaryorn
@ lunaryorn Maaf jika tidak menjawab pertanyaan Anda. Ya, Git mendukung penandatanganan komitmen
Nsukami _

Jawaban:

20

Di Magit, komit dibuat menggunakan popup komit ( c). Karena itu popup akan menjadi tempat yang baik untuk mulai mencari dukungan gpg. Jika Anda melakukannya, maka Anda akan menemukan ini:

=S Sign using gpg (--gpg-sign=)

Jadi ketik = Sdan pilih tombol. Untuk menghindari keharusan melakukan itu setiap kali Anda membuat komit, Anda dapat menyimpan nilai argumen itu (dan semua argumen lain yang saat ini disetel) menggunakan C-x C-s.

Anda mungkin masih harus mengetikkan frasa sandi setiap kali. Untuk menghindari itu, Anda harus memulai agen gpg dan memastikan Emacs mengetahuinya, misalnya menggunakan keychainskrip shell dan keychain-environmentpaket Emacs.

Juga lihat dan atur --show-signatureargumen di popup logging.

tarsius
sumber
Apakah ini sudah diubah transient?
tejasbubane
1
Argumen ini sekarang disembunyikan secara default. Pengumuman sementara menjelaskan cara menampilkannya dengan mengubah "level".
tarsius
Jika ada yang tersandung di sini mencari: magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html
tejasbubane
@tarsius Sepertinya saya tidak bisa mengubah level. Bagaimana cara memulai melakukan itu? Terima kasih.
e18r
Bagian mana dari dokumentasi yang ditautkan dengan tejasbubane?
tarsius
15

Coba ini di $HOME/.gitconfigatau Anda.git/config

[user]
    email = YourEmail
    name = YourName
    signingkey = XXXXXXXX
[commit]
    gpgsign = true

Kemudian lakukan seperti biasa.

csantosb
sumber
Jawaban ini memiliki keuntungan bahwa Anda dapat mengatur kunci per repositori. Tampaknya =Sopsi magit menetapkan kunci $HOME/.gitconfig, jadi sama untuk semua repositori Anda.
ph0t0nix