Для чего предназначена функция Sign Off в Git?

в чем смысл функция выхода в Git?

git commit --signoff

когда я должен использовать его, если на всех?

4 ответов


выход-это требование для получения патчей в ядро Linux и несколько других проектов, но большинство проектов фактически не используют его.

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


Sign-off-строка в конце сообщения фиксации, которая удостоверяет, кто является автором фиксации. Его основная цель-улучшить отслеживание того, кто что сделал, особенно с патчами.

пример фиксации:

Add tests to statement printer.

Signed-off-by: Super Developer <super.dev@gmail.com>

Он должен содержать настоящее имя пользователя, если используется для проекта с открытым исходным кодом.

Если сопровождающему ветви нужно немного изменить патчи, чтобы объединить их, он может попросить отправителя переопределить, но это будет контрпродуктивно. Он может настроить код и поставить свою подпись в конце, чтобы автор все еще получал кредит за патч, а не введенные ошибки.

Add tests to statement printer.

Signed-off-by: Super Developer <super.dev@gmail.com>

[uber.dev@gmail.com: Renamed test methods according to naming convention.]
Signed-off-by: Uber Developer <uber.dev@gmail.com>

источник:http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html


git 2.7.1 (февраль 2016) уточняет, что в совершить b2c150d (05 янв 2016) by Дэвид А. Уилер (david-a-wheeler).
(слитый Junio C Hamano -- gitster -- на совершить 7aae9ba, 05 Feb 2016)

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

-s::
--signoff::

добавить Signed-off-by строка коммиттера в конце сообщения журнала фиксации.
Смысл выход зависит от проекта, но это обычно удостоверяет, что коммиттер имеет право представить эту работу по той же лицензии и соглашается с сертификатом разработчика происхождения (см. https://developercertificate.org для получения дополнительной информации).


разверните документацию, описывающую --signoff

изменить различные файлы документа (man page), чтобы объяснить более подробно, что --signoff средства.

это было вдохновлено "lwn статья 'Боттомли: скромное предложение по DCO'" (сертификат разработчика происхождения), где Пауль отметил:

проблема у меня с DCO в том, что там добавляем "-s" аргумент git commit на самом деле не означает, что вы даже слышали о DCO (the git commit man page не упоминает о DCO нигде), не говоря уже о том, чтобы увидеть его.

так как присутствие "signed-off-by " каким-либо образом подразумевается, что отправитель соглашается и обязуется DCO? В сочетании с тем, что я видел ответы на списки патчей без рыданий, которые говорят не больше ,чем " отправить это с signed-off-by так что я могу совершить это".

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


обратите внимание, что этот знак теперь (для Git 2.15.х/2.16, 1 кв. 2018), доступных для git pull как хорошо.

посмотреть совершить 3a4d2c7 (12 окт 2017) by У. Тревор Кинг (wking).
(слитый Junio C Hamano -- gitster -- на совершить fb4cd88, 06 ноя 2017)

pull: pass --signoff/--no-signoff на "git merge"

слияние может занять --signoff, но без прохождения тяги --signoff вниз, он неудобно использовать; allow'pull' взять вариант и передать его через.


есть несколько хороших ответов на этот вопрос. Я постараюсь добавить еще широкий ответ, а именно о том, что это за линии / заголовки / трейлеры примерно в текущей практике. Не так много о заголовке sign-off в частности (это не единственный).

заголовки или трейлеры (↑1) Как " sign-off "(↑2), в настоящее время практика в таких проектах, как Git и Linux, эффективно структурированные метаданные для фиксации. Все они прилагаются к концу сообщение, после "свободной формы" (неструктурированной) части тела сообщения. Это маркер–значение (или