Що таке функція виключення в Git для?

Яка точка функції Вийти в Git ?

 git commit --signoff 

Коли я повинен використовувати його, якщо взагалі?

400
26 дек. заданий Clark Gaebel 26 дек. 2009-12-26 01:30 '09 о 1:30 2009-12-26 1:30
@ 4 відповідей

Виписка - це вимога для отримання виправлень в ядрі Linux і декількох інших проектах, але більшість проектів насправді його не використовують.

Це було введено після позов SCO , (і інші звинувачення в порушенні авторських прав від ШОС , більшість з яких вони ніколи не брали в суді), як Сертифікат походження розробників . Він використовується, щоб сказати, що ви підтверджуєте, що ви створили виправлення, або що ви підтверджуєте, що, наскільки вам відомо, воно було створено за відповідною ліцензією з відкритим вихідним кодом або що воно було надано вам кимось інакше під цими умовами. Це може допомогти створити ланцюжок людей, які беруть на себе відповідальність за статус авторського права на даний код, щоб гарантувати, що авторський код, не випущений відповідно до ліцензії безкоштовного програмного забезпечення (з відкритим вихідним кодом), не буде включено в ядро.

392
26 дек. відповідь дан Brian Campbell 26 дек. 2009-12-26 01:39 '09 в 1:39 2009-12-26 1:39

Висновок - це рядок в кінці повідомлення фіксації, яка засвідчує, хто є автором фіксації. Його основна мета - поліпшити відстеження того, хто що зробив, особливо з виправленнями.

приклад:

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

Він повинен містити реальне ім'я користувача, якщо він використовується для проекту з відкритим вихідним кодом.

border=0

Якщо розробнику гілки потрібно трохи модифікувати патчі, щоб злити їх, він може попросити подавця повторити, але це буде контрпродуктивно. Він може скорегувати код і помістити його в кінець, щоб автор все ще отримував кредит за патч, а не за введені помилки.

 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> 

Джерело: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html

45
26 дек. відповідь дан Hoto 26 дек. 2012-12-26 20:36 '12 о 20:36 2012-12-26 20:36

git 2.7.1 (лютий 2016 г.) пояснює, що в commit b2c150d (05 січня 2016 г.) Девід А. Уілер ( david-a-wheeler ) .
(об'єднано Junio C Hamano - gitster - в commit 7aae9ba 05 лютий 2016 р

git commit man page тепер включає в себе:

 -s:: --signoff:: 

Додайте рядок Signed-off-by комміттера в кінці повідомлення журналу фіксації.
Значення signoff залежить від проекту, але воно зазвичай підтверджує, що комміттер має права відправити цю роботу під однією ліцензією і згоден з сертифікатом розробника Origin (див. Http://developercertificate.org/ для отримання додаткової інформації).


Розгорнути документацію, що описує --signoff

Змініть різні документи (man-сторінки), щоб більш детально пояснити, що означає --signoff .

Це було натхненне " стаття з лоза" Bottomley: скромне пропозицію по DCO " (сертифікат розробника Origin), де пауль зазначив

Проблема з DCO полягає в тому, що там додавання аргументу << 27> до git commit не означає, що ви навіть чули про DCO (t22> man не згадує DCO в будь-якому місці), неважливо, що це взагалі бачили.

Отже, яким чином присутність " Signed-off-by " будь-яким чином має на увазі, що відправник погоджується і передає DCO? У поєднанні з фактом я бачив відповіді на списки на патчі без SOB, які говорять не більше, ніж "Відправити це за допомогою Signed-off-by , щоб я міг його вчинити".

Розширення документації git спростить твердження, що розробники зрозуміли --signoff , коли вони його використовують.


Зверніть увагу, що це повідомлення тепер (для git 2.15.x / 2.16, Q1 2018) є для git pull .

Див. Commit 3a4d2c7 (12 жовтня 2017 г.) W. Тревор Кінг ( wking ) .
(злиття Юніо З хама - gitster - в commit fb4cd88 , 06 листопада 2017 р

pull : передати --signoff/--no-signoff в " git merge "

merge може приймати --signoff , але без витягування --signoff вниз, це незручно використовувати; дозволити ' pull ' взяти опцію і передати її через.

21
06 февр. відповідь дан VonC 06 февр. 2016-02-06 09:22 '16 о 9:22 2016-02-06 9:22

Є кілька хороших відповідей на це питання. Я намагаюся додати ще широкий відповідь, а саме про те, що таке види ліній / заголовків / трейлерів в сучасній практиці. Не так багато в заголовку (його не єдиний).

Заголовки або трейлери (↑ 1), такі як "виключення" (↑ 2), в поточному практика в таких проектах, як Git і Linux, ефективно структуровані метадані для фіксації. Всі вони додані в кінець повідомлення фіксації, після "вільної форми" (неструктурованою) частини тіла повідомлення. Це пари токенов (або ключ-значення), які зазвичай обмежені двокрапка і пробіл ( :␣ ).

Як я вже згадував, "вимкнення" - не єдиний трейлер в поточній практиці. Бачити наприклад this commit , який пов'язаний з "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> attempted to be fixed once  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> trigger  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> mark the  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> validate that  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> 

На додаток до трейлеру "sign-off" в наведеному вище прикладі є:

  • "Cc" (був повідомлений про патч)
  • "Acked-by" (підтверджений власником коду, "виглядає добре для мене")
  • "Перевірено" (переглянуто)
  • "Відправлено і перевірено" (повідомляється і перевіряється проблема (я вважаю))

Інші проекти, такі як, наприклад, Gerrit, мають свої власні заголовки і пов'язаний з ними сенс.

Дивіться: https://git.wiki.kernel.org/index.php/CommitMessageConventions

мораль історії

У мене склалося враження, що хоча первісна мотивація для цього конкретними метаданими були деякі юридичні питання (судячи по інший відповіді), практика таких метаданих прогресувала стосується випадку формування авторської ланцюжка.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Вони також іноді називаються "sob" (ініціали).

3
15 дек. відповідь дан Guildenstern 15 дек. 2016-12-15 16:06 '16 о 16:06 2016-12-15 16:06

Інші питання по мітках або Задайте питання