Edit: Pada Git versi 1.7.9, itu adalah mungkin untuk menandatangani Git komit (git commit -S
). Memperbarui sedikit jawabannya untuk mencerminkan hal ini.
Judul pertanyaannya adalah:
Apakah ada cara untuk "autosign" melakukan di Git dengan kunci GPG?
Jawaban singkat: ya, tapi jangan lakukan itu.
Mengatasi kesalahan ketik dalam pertanyaan: git commit -s
tidak menandatangani komit. Sebaliknya, dari man git-commit
halaman:
-s, --signoff
Tambahkan baris yang ditandatangani oleh committer di akhir pesan log komit.
Ini menghasilkan keluaran log yang mirip dengan yang berikut:
± $ git log [0:43:31]
commit 155deeaef1896c63519320c7cbaf4691355143f5
Author: User Name
Date: Mon Apr 16 00:43:27 2012 +0200
Added .gitignore
Signed-off-by: User Name
Perhatikan bit "Ditandatangani oleh: ..."; yang dihasilkan oleh -s
bendera di git-commit
.
Mengutip email pengumuman rilis :
- "git commit" learned "-S" to GPG-tandatangani komit; ini dapat ditunjukkan dengan opsi "--show-signature" untuk "git log".
Jadi ya, Anda dapat menandatangani komit. Namun, saya pribadi menyarankan agar berhati-hati dengan opsi ini; secara otomatis menandatangani komit di sebelah tidak ada gunanya, lihat di bawah:
Hanya pertanyaan sampingan, mungkin komit tidak boleh ditandatangani, hanya tag, yang tidak pernah saya buat, karena saya mengirimkan satu komit.
Itu benar. Komit tidak ditandatangani; tag adalah. Alasannya dapat ditemukan dalam pesan ini oleh Linus Torvalds , paragraf terakhir berbunyi:
Menandatangani setiap komit benar-benar bodoh. Itu hanya berarti bahwa Anda mengotomatiskannya, dan Anda membuat tanda tangannya kurang berharga. Ini juga tidak menambah nilai nyata, karena cara rantai-git DAG dari kerja SHA1, Anda hanya perlu satu
tanda tangan untuk membuat semua komitmen dapat dicapai dari yang satu secara efektif tercakup oleh yang itu. Jadi menandatangani setiap komit tidak ada gunanya.
Saya akan mendorong penelusuran pesan yang ditautkan, yang menjelaskan mengapa penandatanganan dilakukan secara otomatis bukanlah ide yang jauh lebih baik daripada yang saya bisa.
Namun , jika Anda ingin menandatangani tag secara otomatis , Anda dapat melakukannya dengan membungkus git-tag -[s|u]
alias; jika Anda akan melakukannya, Anda mungkin ingin mengatur id kunci Anda ~/.gitconfig
atau .git/config
file spesifik proyek . Informasi lebih lanjut tentang proses itu dapat dilihat di buku komunitas git . Menandatangani tag jauh lebih berguna daripada menandatangani setiap komit yang Anda buat.