Düzenleme: Git sürümü 1.7.9 itibariyle bu olduğunu mümkün Git kaydedilmesini imzalamak için ( git commit -S
). Bunu yansıtmak için cevabı biraz güncellemek.
Soru başlığı:
Git'te GPG anahtarıyla “otomatik atama” yapmanın bir yolu var mı?
Kısa cevap: evet, ama yapma.
Sorudaki yazım hatasını adreslemek: git commit -s
taahhüdü imzalamaz. Aksine, man git-commit
sayfadan:
-s, --signoff İşleme
günlüğü iletisinin sonundaki anahtar tarafından imzalanan satırı ekleyin.
Bu, aşağıdakine benzer bir günlük çıktısı verir:
± $ 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
"İmzalayan: ..." bitine dikkat edin; -s
üzerindeki bayrak tarafından üretildi git-commit
.
Sürüm duyuru e-postasından alıntı :
- GPG-imzasını imzalamak için "git commit" öğrendi "-S"; bu "git log" seçeneğine "--show-signature" seçeneği ile gösterilebilir.
Yani evet, taahhütleri imzalayabilirsiniz. Ancak, bu seçenekle bizzat dikkatli davranıyorum; otomatik imzalama taahhütlerinin yanında anlamsızdır, aşağıya bakın:
Sadece bir yan soru, belki de taahhütlerin imzalanmaması gerekir, sadece tek taahhütler gönderirken asla yaratmadığım etiketler.
Bu doğru. Taahhütler imzalanmamıştır; etiketler. Bunun nedeni , son paragrafında yazan Linus Torvalds tarafından bu mesajda bulunabilir :
Her bir taahhüdü imzalamak tamamen aptalca. Bu sadece otomatikleştirdiğiniz anlamına gelir ve imzayı daha az değerli hale getirirsiniz. Ayrıca herhangi bir gerçek değer katmaz, çünkü SHA1'in git DAG-zincirinin çalışması sırasında,
tüm taahhütlerin bundan etkin bir şekilde kapsanabilmesi için sadece bir imzaya ihtiyacınız vardır . Yani her bir taahhüdü imzalamak basitçe eksik.
Bağlantılı iletiye göz atmayı teşvik ederim, bu da otomatik olarak imzalamanın neden işlediğimden çok daha iyi bir fikir olmadığını açıklar.
Ancak , otomatik olarak bir etiketi imzalamak istiyorsanız , bunu git-tag -[s|u]
bir takma adla sararak yapabilirsiniz ; bunu yapacaksanız, muhtemelen anahtar kimliğinizi ~/.gitconfig
veya projeye özgü .git/config
dosyayı ayarlamak istersiniz . Bu süreç hakkında daha fazla bilgi git topluluk kitabında görülebilir . Etiketleri imzalamak, yaptığınız her taahhüdü imzalamaktan çok daha yararlıdır.