Kas yra „git“ išjungimo funkcija?

Koks yra išėjimo funkcijos taškas gite ?

 git commit --signoff 

Kada turėčiau jį naudoti, jei ne?

400
26 дек. „Clark Gaebel“ 26 d 2009-12-26 01:30 '09, 1:30, 2009-12-26 01:30
@ 4 atsakymai

Ištrauka yra reikalavimas gauti pataisas „Linux“ branduolyje ir keliuose kituose projektuose, tačiau dauguma projektų jo faktiškai nenaudoja.

Tai buvo įvesta po SCO ieškinio (ir kitų kaltinimų dėl autorių teisių pažeidimo iš SCO , kurių dauguma jų niekada nepriėmė teisme) kaip kūrėjų kilmės pažymėjimas . Jis naudojamas norint pasakyti, kad patvirtinate, kad sukūrėte pataisą, arba patvirtinate, kad, kiek žinote, jis buvo sukurtas pagal atitinkamą atviro kodo licenciją arba kad ši informacija jums buvo suteikta pagal kitas sąlygas. Tai gali padėti sukurti žmonių, kurie prisiima atsakomybę už šio kodo autorių teisių statusą, grandinę, užtikrindami, kad į branduolį nebūtų įtrauktas autorių teisių kodas, kuris nėra paleistas pagal nemokamą programinės įrangos licenciją (atviro kodo).

392
26 дек. Atsakymą pateikė Brian Campbell 26 d. 2009-12-26 01:39 '09 ne 1:39 2009-12-26 01:39

Išvestis yra eilutė pasibaigus įvykio pranešimui, kuris identifikuoja, kas yra įsipareigojimo autorius. Jo pagrindinis tikslas - gerinti, kas stebėjo, ką padarė, ypač su taisymais.

Pavyzdys:

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

Jame turi būti tikras naudotojo vardas, jei jis naudojamas atviro kodo projektui.

border=0

Jei filialo kūrėjas turi šiek tiek pakeisti pleistrus, kad juos sujungtų, jis gali paprašyti pateikėjo pakartoti, tačiau tai bus priešinga. Jis gali pataisyti kodą ir įdėti jį į pabaigą, kad autorius vis tiek gautų paskolą už pataisą, o ne už įvestas klaidas.

 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> 

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

45
26 дек. Hoto atsakė į gruodžio 26 d 2012-12-26 20:36 '12 8:36 pm 2012-12-26 20:36

git 2.7.1 (2016 m. vasario mėn.) paaiškina, kad „ b2c150d“ (2016 m. sausio 5 d.) David A. Wheeler ( david-a-wheeler ) .
(kartu su Junio ​​C Hamano - gitster - į įsipareigojimą 7aae9ba , 2016 m. vasario 5 d.)

git commit puslapyje dabar yra:

 -s:: --signoff:: 

Pridėkite komandiruotojo pasirašytą Signed-off-by off Signed-off-by liniją prie įsipareigojimo žurnalo pranešimo pabaigos.
Atsijungimo vertė priklauso nuo projekto, tačiau paprastai patvirtina, kad užsakovas turi teisę pateikti šį darbą pagal vieną licenciją ir sutinka su „Origin“ kūrėjo sertifikatu (daugiau informacijos žr. Http://developercertificate.org/ ).


Išplėsti dokumentaciją, aprašančią --signoff

Pakeiskite įvairius dokumentus ( --signoff puslapius), kad išsamiau paaiškintumėte, ką reiškia - --signoff reiškia.

Tai įkvėpė „ vynuogyno straipsnis“ Bottomley: kuklus pasiūlymas dėl „DCO“ („Origin Developer Certificate“), kuriame Paulius pažymėjo

DCO problema yra ta, kad pridedant << 27> argumentą, kad git įsipareigoti, tai net nereiškia, kad jūs net girdėjote apie DCO ( t22> žmogus nemini DCO ), nesvarbu, ką matote.

Taigi, kaip bet kokiu būdu „ Signed-off-by “ buvimas reiškia, kad siuntėjas sutinka ir perduoda DCO? Kartu su šiuo faktu, aš pamačiau atsakymus į sąrašus, esančius be pleistrų, kurie sako ne daugiau kaip „Siųsti jį naudodamiesi„ Signed-off-by , kad galėčiau tai padaryti.

Išplėsti git dokumentaciją supaprastins teiginį, kad kūrėjai supranta, kai jie naudojasi.


Atkreipkite dėmesį, kad šis pranešimas dabar (už gitą 2.15.x / 2.16, Q1 2018) pasiekiamas git pull .

Žr. Įsipareigojimą 3a4d2c7 (2017 m. Spalio 12 d.) W. Trevor King ( wking ) .
(„ Junio ​​S Hamano - gitster “ susijungimas „ fb4cd88“ , 2017 m. lapkričio 6 d.)

pull : praeiti - --signoff/--no-signoff į „ git merge

susiliejimas gali užtrukti, bet be traukimo žemyn - „ --signoff yra nepatogu naudoti; leisti „ pull “ pasirinkti ir perduoti ją.

21
06 февр. Atsakymas pateikiamas VonC 06 Feb. 2016-02-06 09:22 '16 at 9:22 AM 2016-02-06 09:22

Yra keletas gerų atsakymų į šį klausimą. Bandau pridėti dar vieną platų atsakymą, būtent, kokios yra šiuolaikinės praktikos linijų / antraščių / priekabų rūšys. Ne daug pavadinime (tai ne vienintelis).

Antraštės ar priekabos (↑ 1), pvz., „Išjungimas“ (↑ 2), dabartinėje praktikoje, pvz., „Git“ ir „Linux“, yra efektyviai susisteminti metaduomenys. Visi jie pridedami prie įsipareigojimo pranešimo pabaigos, po „laisvos formos“ (nestruktūrinės) pranešimo dalies dalies. Tai yra simbolinės poros (arba pagrindinė vertė), kurios paprastai apsiriboja dvitaškiu ir :␣ ( :␣ ).

Kaip minėjau, „išjungimas“ nėra vienintelė priekaba dabartinėje praktikoje. Žr., Pavyzdžiui, tai , kas yra susijusi su „Dirty Cow“:

  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> 

Be pirmiau pateiktame pavyzdyje pateikto atsijungimo priekabos, yra:

  • „Cc“ (pranešta apie pleistrą)
  • „Aktyvintas“ (patvirtintas kodo savininkas, „man atrodo gerai“)
  • „Patvirtinta“ (peržiūrėta)
  • „Išsiųsta ir patvirtinta“ (pranešta ir patvirtinta problema)

Kiti projektai, pavyzdžiui, „Gerrit“, turi savo pavadinimus ir susijusią reikšmę.

Žr. Https://git.wiki.kernel.org/index.php/CommitMessageKonvencijos

Istorijos moralė

Man susidarė įspūdis, kad nors pradinė šio specifinio metaduomenų motyvacija buvo kai kurie teisiniai klausimai (vertinant pagal kitus atsakymus), tokių metaduomenų praktika vyko autoriaus grandinės formavimo atveju.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Jie taip pat kartais vadinami „bjauriais“ (inicialai).

3
15 дек. Atsakymą pateikė Gildensternas gruodžio 15 d. 2016-12-15 16:06 '16 at 16:06 2016-12-15 16:06

Kiti klausimai apie tag žymes arba užduoti klausimą