(Bu, büyük ölçüde Git Korku Öyküsü'ne dayanmaktadır : İmzalı Taahhütlere Sahip Depo Bütünlüğü - çok iyi bir okuma ve cevap yazabileceğimden daha fazla bilgi.)
Bir git deposunun tehlikeye girebileceği birkaç yol vardır (bu bir güvenlik açığı değildir, sadece yaşamın bir gerçeğidir - bu nedenle git'i kullanmaktan kaçınmamalıdır). Örneğin, birisi siz olduğunuzu iddia ederek depoya göndermiş olabilir. Ya da bu konuda, birisi sizin olduğunuzu iddia eden bir başkasının deposuna itebilirdi (biri siz de olduğunu iddia ederek kendi deposuna itebilir). Bu DVCS'deki hayatın bir parçası.
Sadece bir örnek olarak:
$ git config --global user.name 'Madara Uchiha'
$ git config --global user.email muchiha@example.com
Burada, git yapılandırmamı, ben varımmışım gibi değiştirdim. Ve şimdi karar verdim ve bu taahhütlerin bir şekilde prodüksiyona girmelerini sağladım ve bunu yapmış gibi görünüyorsun.
Taahhütlerin (ve etiketlerin) imzalanmasıyla, belirli taahhütlerin ve etiketlerin sizden olduğunu kanıtlayabilirsiniz (ve imzalanmayanların üretim yapmasına izin vermemeliydi). Bu gerçekten hepsinin anahtarı - imzalamanız sizin işiniz olduğunu söyleyerek taahhüt ediyorsunuz.
“İşiniz” yönü, zaman zaman telif hakkı davalarıyla vurulan linux çekirdeğinde (ve dolayısıyla git) özellikle önemlidir. İmzalama, yazılıma hakkınız olduğunu söyler - kökenini izler. Telif hakkı olarak talep edilen kaynağa erişiminiz olmayabilir ve talep temelsiz olabilir. Şirket sizin için birkaç yıl önce çalıştığınızı ve onların yönünde olduklarını unutmuş olabilir , çekirdeğe ya da her neyse.
Her taahhüdün imzalanıp imzalanmayacağı konusunda bazı tartışmalar var. Gönderen GPG imzalanması Git için taahhüt? ('09'da geri döndü), Linus şunu yazdı:
Her bir sözleşmeyi imzalamak tamamen aptalca. Bu sadece onu otomatikleştirdiğiniz ve imzayı daha az değerli hale getirdiğiniz anlamına gelir. Aynı zamanda, herhangi bir gerçek değer katmaz, çünkü SHA1'in git DAG zincirinin çalışması, tüm taahhütlerin bu şirket tarafından etkin bir şekilde karşılanabilmesi için yalnızca bir imzaya ihtiyacınız vardır. Bu yüzden her bir anlaşmayı imzalamak sadece noktayı eksik.
Git'te oturum açma konusundaki düşünceler hakkında çok daha fazlası orada da okunabilir.
Bu, zaten gitmesine yol açtı dedi.
İmzalama işlemlerinin gereksiz olduğu, ancak etiketlerin imzalanmasının çok iyi olduğu konusunda bir fikir birliği var gibi görünüyor. En üste bağlanmış olan bu blog yazısı, birinin her şeyi yine de imzalaması gerektiğini gösteriyor. Dediğim gibi, her taahhüdün gerekli olup olmadığı hakkında bazı tartışmalar var.
"Her taahhüdü imzala" tartışmasının anahtarı muhtemelen kullandığınız iş akışı ile ilgilidir. Çoğu insan yerel reposunda bir sürü taahhütte bulunur ve ardından bu seti iter. Son koleksiyonun etiketlenmesi yeterli olacaktır (varsayalım ki, tüm değişikliklerin doğru olduğundan emin olmalısınız). Çok sayıda tek komisyonun hareket ettiği bir ortamda çalışıyorsanız, bir etiket ile bir taahhüt arasındaki fark daha az olur ... ve imzalama taahhütleri daha kullanışlı olabilir.