Git의 사인 오프 기능은 무엇입니까?
Git 의 Sign Off 기능 의 요점은 무엇입니까 ?
git commit --signoff
언제 사용해야합니까?
사인 오프는 Linux 커널 및 다른 프로젝트에 패치를 가져 오기위한 요구 사항이지만 대부분의 프로젝트는 실제로이를 사용하지 않습니다.
그것은의 여파로 소개 된 SCO 소송 , (그리고 SCO에서 저작권 침해의 다른 비난 A와, 실제로 법원에 찍어 본적 대부분의) 원산지 개발자 인증서 . 문제의 패치를 만들었 음을 증명하거나, 귀하가 알고있는 한도 내에서 적절한 오픈 소스 라이센스하에 작성되었거나 다른 사람이 귀하에게 제공했음을 증명하는 데 사용됩니다. 그 조건에 따라 다른. 이를 통해 해당 코드의 저작권 상태를 책임지는 일련의 사람들을 구성하여 적절한 자유 소프트웨어 (오픈 소스) 라이센스로 배포되지 않은 저작권 코드가 커널에 포함되지 않도록 할 수 있습니다.
사인 오프는 커밋 메시지의 끝에있는 라인으로, 누가 커밋의 작성자인지를 인증합니다. 주요 목적은 특히 패치로 누가 무엇을했는지 추적하는 것입니다.
커밋 예 :
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 년 2 월 )은 David A. Wheeler ( )에 의해 커밋 b2c150d (2016 년 1 월 5 일 )를 분명히합니다 . (의해 병합 Junio C 하마노 - - 에 커밋 7aae9ba 05 이월 2016)david-a-wheeler
gitster
git commit
매뉴얼 페이지에 포함 된 내용 :
-s::
--signoff::
Signed-off-by
커밋 로그 메시지 끝에 커미터별로 줄을 추가 합니다.
사인 오프의 의미는 프로젝트에 따라 다르지만 일반적으로 커미터가 동일한 라이센스로이 작업을 제출할 권한이 있으며 개발자 원산지 증명서에 동의 함을 보증합니다 ( 자세한 내용 은 https://developercertificate.org 참조 ).
설명하는 설명서 확장
--signoff
--signoff
의미가 무엇인지 더 자세히 설명하기 위해 다양한 문서 (man page) 파일을 수정하십시오 .paulj는 다음과 같이 지적했다. " 저자 기사 'Bottomley : DCO에 대한 겸손한 제안' "(개발자 인증서 : Origin)
내가 DCO와 함께이 문제가 있다는 것입니다 은 "추가
-s
자식이 정말로 당신도 DCO 들었 의미하지 않는다 커밋에"인수를 ( 사람이 페이지는 DCO의 아무 곳이나 언급을하지 않습니다 ), 실제로 본 적이 될까요 않았다.git commit
그렇다면 어떻게 "
signed-off-by
" 의 존재가 발신자가 DCO에 동의하고 커밋했음을 의미 할 수 있습니까? 사실과 함께 SOB가없는 패치에 대한 목록에서 "재전송signed-off-by
할 수 있도록 다시 보내십시오"라는 응답을 보았습니다 .git의 문서를 확장하면 개발자가
--signoff
그것을 사용할 때 이해했다고 쉽게 주장 할 수 있습니다.
이 사인 오프는 이제 Git 2.15.x / 2.16, 2018 년 1 분기에 사용할 수 git pull
있습니다.
W. Trevor King ( )의 commit 3a4d2c7 (2017 년 10 월 12 일)을 참조하십시오 . (의해 병합 - Junio C 하마노 - 에 fb4cd88 커밋 2,017 06 십일)wking
gitster
pull
:--signoff/--no-signoff
"git merge
"로 전달병합은 걸릴 수
--signoff
있지만 풀이--signoff
내려 가지 않으면 사용하기가 불편합니다. 'pull
'를 사용하여 옵션을 가져 와서 전달하십시오.
이 질문에 대한 좋은 답변이 있습니다. 더 광범위한 답변을 추가하려고 시도합니다. 즉, 현재 이러한 종류의 라인 / 헤더 / 트레일러가 무엇에 관한 것인지에 대해 설명하겠습니다. 특히 사인 오프 헤더에 대해서는별로 중요하지 않습니다 (유일한 헤더는 아닙니다).
“sign-off”(↑ 2)와 같은 헤더 또는 트레일러 (↑ 1)는 현재 Git 및 Linux와 같은 프로젝트에서 커밋을 위해 효과적으로 구조화 된 메타 데이터입니다. 이것들은 모두 메시지 본문의 "자유 형식"(구조화되지 않은) 부분 다음에 커밋 메시지의 끝에 추가됩니다. 이들은 일반적으로 콜론과 공백 ( ) 으로 구분되는 토큰-값 (또는 키-값 ) 쌍 :␣
입니다.
앞서 언급했듯이“사인 오프”는 현재 실무에서 유일한 예고편이 아닙니다. 예를 들어 “Dirty Cow”와 관련 이있는이 commit을 참조하십시오 :
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>
위의 "사인 오프"트레일러 외에도 다음이 있습니다.
- "Cc"(패치에 대한 알림)
- “Acked-by”(코드 소유자가 인정한“나에게 좋아 보인다”)
- “검토 자”(검토 됨)
- "보고 및 테스트"(문제보고 및 테스트 (본인))
Gerrit와 같은 다른 프로젝트에는 자체 헤더와 관련 의미가 있습니다.
참조 : https://git.wiki.kernel.org/index.php/CommitMessageConventions
이야기의 교훈
비록이 특정 메타 데이터에 대한 초기 동기가 일부 법적 문제 (다른 답변들에 의해 판단되는) 였지만, 그러한 메타 데이터의 실습은 저작권 체인을 형성하는 경우를 다루는 것 이상으로 진행되어왔다.
[↑ 1] : man git-interpret-trailers
[↑ 2] : 이들은 때때로 "sob"(초기)이라고도합니다.
참고 URL : https://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for
'Programming' 카테고리의 다른 글
PowerShell에서 문자열과 변수를 어떻게 연결합니까? (0) | 2020.02.11 |
---|---|
argparse를 사용하여 부울 값 구문 분석 (0) | 2020.02.11 |
require ()와 library ()의 차이점은 무엇입니까? (0) | 2020.02.11 |
함수 / 메소드에 대해 키워드 '인라인'을 언제 작성해야합니까? (0) | 2020.02.11 |
인터페이스를 구현하는 모든 유형 얻기 (0) | 2020.02.11 |