Mengapa banyak projek sumber terbuka memerlukan Log Off? Nama pengguna dan alamat e-mel telah dikonfigurasikan dalam Git Apakah kepentingan menandatangani semula?
Selain itu, bagaimana untuk melaksanakan operasi Log Keluar? Adakah cukup untuk menambah baris pada penghujung perihalan penyerahan, atau semasa Permintaan Tarik, atau adakah terdapat kaedah lain yang perlu digunakan?
Pertama, bezakan antara tandatangan dan tandatangan. @nightfire telah menerangkan tandatangan. Biar saya terangkan (terjemah) maksud sign-off.
Saya tidak nampak "banyak projek sumber terbuka memerlukan" log keluar. Yang paling terkenal ialah kernel linux. Dokumentasinya mengatakan ini:
Oleh kerana semasa proses pembangunan Linux, mereka tidak menggunakan "permintaan tarik" yang dibuat oleh GitHub, tetapi menghantar patch melalui e-mel (yang diedarkan) (jadi git mempunyai sokongan yang cukup baik untuk e-mel). Apabila patch dihantar berulang-alik, anda perlu menjejakinya, jika tidak, ia akan menjadi buruk seperti yang dialami BSD dan menjejaskan pembangunan. "Ditandatangani oleh" sebenarnya adalah pernyataan yang anda jamin bahawa tampung yang anda hantar mematuhi mata dalam "Sijil Asal Pembangun 1.1".
Seseorang di StackOverflow berkata bahawa ini hanya keperluan untuk beberapa projek dan kebanyakan projek tidak menggunakan log keluar.
PS: Jika anda melihat kernel commit, kadangkala anda boleh melihat commit dengan senarai sign-off yang panjang. Bagaimanakah hanya seorang committer dan seorang penulis boleh mencukupi dalam kes ini?
Jawapan mudahnya ialah untuk anda membuktikan bahawa anda adalah anda!
Secara amnya, apabila menyerahkan, akan ada dua maklumat: pengarang dan pengarang, biasanya satu orang (projek persendirian, repo pusat dikongsi).
Dalam era sebelum Github (contohnya, Git pertama kali digunakan untuk pembangunan kolaboratif Teras Linux), permintaan tarik yang kini biasa dilakukan oleh semua orang tidak begitu mudah untuk dikendalikan. Pada masa itu, patch sering digunakan untuk pembangunan teragih Contohnya, anda menghantar penyerahan anda (maklumat pengarang telah dijana pada masa ini) kepada pengurus/penyelenggara projek sebagai lampiran e-mel, dan kemudian dia menggabungkannya ke dalam perpustakaan pusat. ( Ini adalah maklumat committer yang dijana)......
Walau bagaimanapun, baik pengarang mahupun pelaku pada dasarnya tidak dapat membuktikan bahawa "orang" itu adalah orang sebenar yang melakukan perkara itu. Kerana terlalu mudah untuk mengetahui nama dan e-mel pembangun Bolehkah patch yang dihantar sebagai lampiran e-mel membuktikan bahawa pengarangnya adalah anda? Bolehkah orang yang menerima e-mel dan menggabungkannya memastikan bahawa dia adalah pelaku? (Dengan mengandaikan projek mempunyai berbilang pengurus/penyelenggara)
Jadi, orang yang menghargai ini akan menggunakan kunci GPG untuk tandatangan selamat, itulah yang anda tanyakan Log Keluar Ia sebenarnya adalah tandatangan elektronik yang juga menggunakan tandatangan digital ini.
Saya cuba menjadikannya semudah dan sejelas mungkin, tetapi sebenarnya terdapat lebih banyak butiran daripada yang anda bayangkan Jika anda berminat, anda boleh membaca artikel ini: Kisah Seram Git: Integriti Repositori Dengan Komit yang Ditandatangani, dan ini. artikel Artikel belum selesai bercakap tentang semua yang berkaitan dengan Sign Off.
Satu lagi perkara yang membimbangkan ialah, banyak projek akan mempunyai lesen, bukan? Tetapi anda boleh menggunakan kod pihak ketiga dalam projek anda, dan ada kemungkinan bahawa dasar pelesenan kod ini adalah saling eksklusif/bercanggah dengan lesen projek ini. Jika ia adalah projek sumber terbuka (seperti yang anda tanya), anda akan memberi lebih perhatian kepada aspek ini (adakah anda mahu orang lain menyaman anda?). Sign Off Git boleh menjadi tepat pada baris, yang merupakan pengesahan sumber sebenar kod (walaupun kebolehpercayaan boleh dipersoalkan, ia lebih baik daripada tiada...). Saya tidak akan menerangkan secara terperinci tentang ini, saya hanya mendengar sedikit tentangnya.
Untuk menggunakan tandatangan, anda perlu mengikut tiga langkah paling mudah (berdasarkan Mac):
Anda memerlukan program gunpg, Mac boleh menggunakan homebrew untuk memasang:
Anda perlu menjana kunci GPG anda. Prosesnya ditiadakan dalam artikel di atas, ia akan kelihatan seperti ini:
<.>
(perhatikan huruf besar) pada perintah
git commit
, tandatangan digital anda akan dilampirkan secara automatik apabila anda menyerahkannya. Anda adalah diri anda sendiri dan enggan dipalsukan!-S
Menurut petua @Evian, terdapat perbezaan antara
--sign-off
dan--gpg-sign
Ini mempunyai sebab sejarah Jika anda berminat, anda boleh membaca ulasan dalam jawapannya. Petikan berikut daripada jawapan carian Google:-S
Anda boleh melakukan kedua-duanya pada masa yang sama, itulah sebabnya pilihan ini disyorkan dalam jawapan sebelumnya. Jadi--sign-off
hanyalah tandatangan dan--gpg-sign
ialah tandatangan menggunakan kunci GPG.OK, salah lagi...
-S
Anda tidak boleh melakukan kedua-duanya pada masa yang sama Jika anda mahu kedua-dua tandatangan dan tandatangan, anda perlu menggunakan kedua-duanya bersama-sama.