Git'teki kapatma özelliği ne için?

Git fonksiyonundaki çıkış fonksiyonunun amacı nedir?

 git commit --signoff 

Ne zaman kullanmalıyım?

400
26 дек. Clark Gaebel 26 Aralık'ta başladı 2009-12-26 01:30 '09 1:30, 2009-12-26 01:30
@ 4 cevaplar

Özü, Linux çekirdeğinde ve diğer birkaç projede düzeltmeler almak için bir gerekliliktir, ancak çoğu proje aslında onu kullanmaz.

Bu, SCO davasından sonra (ve çoğu mahkemede hiç kabul etmeyen , SCO'dan gelen diğer telif hakkı ihlali suçlamaları ), geliştiricilerin Menşe Belgesi olarak tanıtıldı. Düzeltmeyi oluşturduğunuzu veya bildiğiniz kadarıyla ilgili bir açık kaynak lisansı altında oluşturulduğunu veya bu koşullar altında size başka bir kişi tarafından sağlandığını onayladığınızı söylemek için kullanılır. Bu, özgür yazılım lisansı (açık kaynak kodlu) altında serbest bırakılmayan telif hakkı kodunun çekirdeğe dahil edilmemesini sağlamak için bu kodun telif hakkı durumundan sorumlu olan bir zincir oluşturmaya yardımcı olabilir.

392
26 дек. Cevap Brian Campbell 26 Aralık'ta verildi . 2009-12-26 01:39 '09, 1:39 2009-12-26 01:39

Çıktı, taahhüt mesajının sonundaki, yazarın kim olduğunu tanımlayan karakterdir. Asıl amacı, özellikle düzeltmelerle kimin ne yaptığını takip etmektir.

örnek:

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> 

Açık kaynak kodlu bir proje için kullanılıyorsa gerçek bir kullanıcı adı içermelidir.

border=0

Bir şube geliştiricisinin bunları birleştirmek için yamaları biraz değiştirmesi gerekiyorsa, göndericiden tekrar etmesini isteyebilir, ancak bu ters etki yaratacaktır. Kodu düzeltebilir ve en sonunda koyabilir, böylece girilen hatalar için yazar düzeltme eki için hala borç alabilir.

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> [uber.dev@gmail.com: renamed methods according to naming conventions.] Signed-off-by: Uber Developer <uber.dev@gmail.com> 

Kaynak: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html

45
26 дек. Hoto 26 Aralık yanıtladı 2012-12-26 20:36 '12, 20:36, 2012-12-26 20:36

git 2.7.1 (Şubat 2016), açıklamasında b2c150d (5 Ocak 2016) David A. Wheeler'ın ( david-a-wheeler ) olduğunu açıklar.
( Junio ​​C Hamano tarafından birleştirildi - gitster - taahhütte 7aae9ba , 5 Şubat 2016

git commit sayfası şimdi içeriyor:

 -s:: --signoff:: 

Yüklenici tarafından imzalanan sonrakine satırını son günlüğü iletisinin sonuna ekleyin.
İmza değeri projeye bağlıdır, ancak genellikle kuruluşun bu işi tek bir lisans altında sunma hakkına sahip olduğunu ve Menşei geliştirici sertifikasını kabul ettiğini doğrular (daha fazla bilgi için http://developercertificate.org/ adresine bakınız).


--signoff tanımlayan belgeleri genişletin

- --signoff ne --signoff geldiğini daha ayrıntılı olarak açıklamak için çeşitli belgeleri ( --signoff sayfaları) değiştirin.

Bu, Paul'un belirttiği "Asmaktan gelen makale" Bottomley: DCO için mütevazı bir teklif "ten (Origin Geliştirici Sertifikası) ilham almıştır.

DCO’daki sorun gitmiş işine << 27> argümanı eklemenin , ne gördüğün önemli değil, DCO’yu duyduğun anlamına gelmiyor .

Öyleyse, herhangi bir şekilde " Signed-off-by " un varlığı, gönderenin DCO'yu kabul ettiğini ve ilettiğini nasıl ima eder? Aslında, SOB olmayan yamalardaki listelerin cevaplarını gördüm, "Bunu yapabilmek için Signed-off-by olanı kullanarak gönder" den daha fazla değil.

Git belgelerinin genişletilmesi, geliştiricilerin anladıkları iddiasını basitleştirir - kullandıklarında bunu --signoff .


Lütfen bu mesajın şimdi (git 2.15.x / 2.16, Q1 2018 için) git pull için uygun olduğunu unutmayın.

Bakınız taahhüt 3a4d2c7 (12 Ekim 2017) W. Trevor King ( wking ) .
( Junio ​​S gitster birleşmesi - gitster - taahhütte fb4cd88 , 06 Kasım 2017)

pull : pass --signoff/--no-signoff " git merge " için --signoff/--no-signoff

birleştirme --signoff alabilir, ancak geri --signoff kullanımı uygun değildir; ' pull ' seçeneğinin alınmasına ve geçmesine izin verin.

21
06 февр. Cevap, VonC 06 Şubat'ta verilir. 2016-02-06 09:22 '16, 09:22, 2016-02-06 09:22

Bu sorunun bazı iyi cevapları var. Başka bir geniş cevap eklemeye çalışıyorum, yani modern uygulamada satır / başlık / römork türleri nelerdir. Başlıkta fazla değil (sadece bir tane değil).

Git ve Linux gibi projelerde şu anki uygulamada olan "kapatma" (↑ 2) gibi başlıklar veya römorklar (↑ 1), işlenmek üzere etkin bir şekilde yapılandırılmıştır. Hepsi, mesaj gövdesinin "serbest form" (yapılandırılmamış) kısmından sonra, taahhüt mesajının sonuna eklenir. Bunlar, genellikle bir kolon ve bir boşluk ( :␣ () ile sınırlı olan jeton çiftleridir (veya anahtar değer).

Bahsettiğim gibi, “kapanış” mevcut uygulamadaki tek fragman değil. Örneğin, "Dirty Cow" ile ilişkili olan bu işleme bakınız:

  mm: remove gup_flags FOLL_WRITE games from __get_user_pages() This is an ancient bug that was actually attempted to be fixed once (badly) by me eleven years ago in commit 4ceb5db9757a ("Fix get_user_pages() race for write access") but that was then undone due to problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug"). In the meantime, the s390 situation has long been fixed, and we can now fix it by checking the pte_dirty() bit properly (and do it better). The s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement software dirty bits") which made it into v3.9. Earlier kernels will have to look at the page state itself. Also, the VM has become more scalable, and what used a purely theoretical race back then has become easier to trigger. To fix it, we introduce a new internal FOLL_COW flag to mark the "yes, we already did a COW" rather than play racy games with FOLL_WRITE that is very fundamental, and then use the pte dirty flag to validate that the FOLL_COW flag is still valid. Reported-and-tested-by: Phil "not Paul" Oester <kernel@linuxace.com> Acked-by: Hugh Dickins <hughd@google.com> Reviewed-by: Michal Hocko <mhocko@suse.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Kees Cook <keescook@chromium.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Willy Tarreau <w@1wt.eu> Cc: Nick Piggin <npiggin@gmail.com> Cc: Greg Thelen <gthelen@google.com> Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> 

Yukarıdaki örnekteki imzalı treylere ek olarak, bunlar:

  • "Cc" (düzeltme ekinden haberdar edildi)
  • "Acked-by" (kodun sahibi tarafından onaylandı, "bana iyi görünüyor")
  • "Doğrulandı" (görüntülendi)
  • "Gönderildi ve doğrulandı" (bildirildi ve sorunu doğruladı (Sanırım))

Örneğin Gerrit gibi diğer projeler kendi unvanlarına ve ilgili anlamlarına sahiptir.

Bakınız: https://git.wiki.kernel.org/index.php/CommitMessageConventions

Hikayenin ahlaki

Bu belirli meta veri için ilk motivasyonun bazı yasal sorular olmasına rağmen (diğer cevaplarla değerlendirilirken), yazar zincirinin oluşumu ile ilgili olarak bu meta verilerin uygulanmasının ilerlediği izlenimini edindim.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Bazen "sob" (baş harfleri) olarak da adlandırılırlar.

3
15 дек. Cevap 15 Aralık'ta Guildenstern tarafından verildi. 2016-12-15 16:06 16: 16'da 2016-12-15 16:06

etiketleri veya soru sor ile ilgili diğer sorular