Git의 사인 오프 기능은 무엇을 위한 것입니까?
Git에서 사인 오프 기능의 요점은 무엇입니까?
git commit --signoff
언제 사용하면 될까요?
서명은 Linux 커널과 몇 가지 다른 프로젝트에 패치를 가져오기 위한 요구 사항이지만 대부분의 프로젝트는 실제로 이를 사용하지 않습니다.
SCO 소송(및 SCO의 저작권 침해에 대한 다른 고발, 대부분 실제로 소송을 제기한 적이 없음) 이후 개발자 원산지 증명서로 도입되었습니다.사용자가 해당 패치를 생성했음을 인증하거나, 사용자가 아는 한 해당 패치가 적절한 오픈 소스 라이센스로 생성되었음을 인증하거나, 다른 사용자가 해당 조건으로 사용자에게 제공했음을 인증하는 데 사용됩니다.이를 통해 해당 코드의 저작권 상태를 책임지는 사람들의 체인을 구축하여 적절한 자유 소프트웨어(오픈 소스) 라이센스로 릴리스되지 않은 저작권 코드가 커널에 포함되지 않도록 할 수 있습니다.
Sign-off는 커밋 메시지 끝에 있는 줄로 커밋의 작성자가 누구인지 확인합니다.주요 목적은 특히 패치를 사용하여 누가 무엇을 했는지 추적을 개선하는 것입니다.
커밋 예제:
Add tests for the payment processor.
Signed-off-by: Humpty Dumpty <humpty.dumpty@example.com>
오픈 소스 프로젝트에 사용되는 경우 사용자 실명을 포함해야 합니다.
지점 유지 관리자가 패치를 병합하기 위해 패치를 약간 수정해야 하는 경우 제출자에게 수정을 요청할 수 있지만 이는 역효과를 초래할 수 있습니다.그는 코드를 조정하고 종료를 끝에 두면 원본 작성자가 패치에 대한 크레딧을 계속 받을 수 있습니다.
Add tests for the payment processor.
Signed-off-by: Humpty Dumpty <humpty.dumpty@example.com>
[Project Maintainer: Renamed test methods according to naming convention.]
Signed-off-by: Project Maintainer <project.maintainer@example.com>
출처: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html
TLDR; 일반적으로 커미셔너가 동일한 라이센스로 이 작업을 제출할 수 있는 권한을 가지고 있음을 인증하고 개발자 원산지 증명서에 동의합니다(자세한 내용은 http://developercertificate.org/ 참조).
Git 2.7.1(2016년 2월)은 David A의 commit b2c150d(2016년 1월 5일)에서 이를 명확히 합니다. 휠러().david-a-wheeler
(주니오 C 하마노에 의해 합병 -- -- 7aae9ba 커밋, 2016년 2월 5일)
git commit
이제 man 페이지는 다음을 포함합니다.
-s::
--signoff::
더하다
Signed-off-by
커밋 로그 메시지의 끝에 있는 커밋 기준 행입니다.
승인의 의미는 프로젝트에 따라 다르지만 일반적으로 커미셔너가 동일한 라이센스로 이 작업을 제출할 수 있는 권한을 가지고 있으며 개발자 원산지 증명서에 동의한다는 것을 인증합니다(자세한 내용은 https://developercertificate.org 참조).
다을설는문서펼다칩니를음하에 대한 합니다.
--signoff
한 문서page) 하여 무엇이 무엇인지 합니다.
--signoff
방법.이것은 "lawn article' Bottomley: DCO'(개발자 원산지 증명서)에 대한 겸손한 제안. 여기서 paulj는 다음과 같이 언급했습니다.
DCO와 관련하여 제가 가지고 있는 문제는 git commit에 ""
-s
인수를 추가하는 것이 실제로 DCO에 대해 들어본 적이 있다는 것을 의미하지 않는다는 것입니다(맨 페이지는 어디에서도 DCO에 대해 언급하지 않습니다). 실제로 본 것은 개의치 않습니다.그럼 래서어의게존가재그"의 존재가 있을 수 ?
signed-off-by
어떤 식으로든 보낸 사람이 DCO에 동의하고 약속하고 있다는 것을 암시합니까?사실과 결합하여 SOB가 없는 패치에 대한 목록에서 "이것을 다음으로 다시 보내기"라고만 말하는 응답을 보았습니다.signed-off-by
그래서 나는 그것을 저지를 수 있습니다."Git의 문서를 확장하면 개발자들이 이해했다고 주장하는 것이 더 쉬워질 것입니다.
--signoff
그들이 그것을 사용할 때.
이 2 2018는 Git 2.15.x/2.16, 2018년 1분기)에 사용할 수 .git pull
뿐만 아니라.
W의 커밋 3a4d2c7(2017년 10월 12일)을 참조하십시오. 트레버 wking
킹().
(주니오 C 하마노에 의해 합병 -- -- 커밋 fb4cd88, 2017년 11월 06일)
pull
하다 스패--signoff/--no-signoff
"에게git merge
"
는 병이가니다를 사용할 수 .
--signoff
하지만 당김 없이--signoff
합니다; 허용합니다 허용합니다; 허용합니다; 허용합니다.pull
선택권을 가지고 통과시키는 것.
과 함께 Git 2.33 (2021년 3분기)는SubmitingPatches
배후에 있는 의도를 더욱 입증하는 문서signoff
DCO(오픈 소스 프로젝트의 경우 CLA보다 선호됨).
Aévar Arnförd Bjarmason()avar
의 커밋 f003a91, 커밋 4523dc8(2021년 7월 22일) 참조.
(주니오 C 하마노에 의해 합병 -- -- 58705b4, 2021년 8월 4일 커밋)
Sign-off-by의 토론을 위의 "send"로
SubmittingPatches
이동합니다.사인 오프 바이: 애바르 아르뇌르드 비야르마손
패치 자체 생성에 대해 설명하는 섹션 위에 SOB 트레일러 추가에 대해 설명하는 섹션을 이동합니다.
누군가가 ""의git format-patch
(man)과정을 겪지 않고 "" 또는 그와 동등한 것을git commit -s
(man)사용했어야 한다는 것을 뒤늦게 깨닫기를 원하기 때문에 이것은 이치에 맞습니다.
SubmittingPatches
이제 관리 페이지에 다음 항목이 포함됩니다.
[서명]
다음을 추가하여 작업 인증
Signed-off-by
트레일러누가 무엇을 했는지 추적을 개선하기 위해 패치를 "서명"하여 패치를 작성했거나 당사와 동일한 라이센스로 패치를 전달할 권리가 있음을 인증해 주시기 바랍니다.승인 없이는 귀하의 패치를 수락할 수 없습니다.
아래의 D-C-O를 인증하는 경우(및 경우에만 해당):
[dco]
개발자 원산지 증명서 1.1
GitHub은 (2022년 6월 이후) 커밋 메시지에 사인오프를 추가하도록 강제할 수 있습니다.
관리자가 웹 기반 커밋에 대한 승인을 요구할 수 있음
이제 조직 소유자와 리포지토리 관리자는 개발자에게 파일 편집이나 꺼내기 요청 병합과 같은 GitHub의 웹 인터페이스를 통해 수행된 커밋을 종료하도록 요구할 수 있습니다.
또한 이제 개발자들이 웹 인터페이스에서 사인오프를 완료하는 것이 더 쉬워져 병합에서 차단되는 커밋이 줄어들고 차단된 커밋을 해결하는 데 소요되는 시간이 줄어듭니다.
이 설정이 활성화되면 아래와 같이 웹 인터페이스는 개발자에게 커밋 작업도 종료를 구성한다는 것을 알립니다.
Git's를 사용하는 것처럼--signoff
웹으로 명령의옵, 션인이스서사에인자면하추프다를 합니다.Signed-off-by:
커밋 메시지의 텍스트입니다.
이 질문에 대한 몇 가지 좋은 대답이 있습니다.저는 더 넓은 대답, 즉 현재의 관행에서 이러한 종류의 선/제목/트레일러가 무엇에 관한 것인지에 대해 추가하려고 노력합니다.특별히 사인오프 헤더에 대해서는 언급하지 않았습니다(단 하나가 아닙니다).
"사인오프"(↑2)와 같은 헤더 또는 트레일러(↑1)는 현재 Git 및 Linux와 같은 프로젝트에서 커밋을 위한 효과적으로 구조화된 메타데이터입니다.이들은 모두 메시지 본문의 "자유 양식"(비정형) 부분 뒤에 커밋 메시지 끝에 추가됩니다.이들은 일반적으로 콜론과 공백으로 구분되는 토큰-값(또는 키-값) 쌍입니다.:␣
).
제가 언급했듯이, "사인오프"는 현재 연습에서 유일한 예고편이 아닙니다.예를 들어 "더러운 소"와 관련된 이 커밋을 참조하십시오.
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]: 이것들은 때때로 "s-o-b"(s-o-b)라고도 불립니다.
언급URL : https://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for
'programing' 카테고리의 다른 글
MVVM Light Toolkit 샘플 (0) | 2023.05.16 |
---|---|
Visual Studio에서 프로젝트/솔루션 간에 코드를 공유하는 방법은 무엇입니까? (0) | 2023.05.16 |
jQuery or Selector? (0) | 2023.05.16 |
Postgre의 계산된/계산된/가상/파생 열SQL (0) | 2023.05.16 |
GitLab에서 GitHub로 Git 저장소 전송 - 가능한 방법 및 함정(있는 경우)? (0) | 2023.05.16 |