목차
1. 원인 및 배경
2. 해결
잡소리 😎
-> 현재 2022 오픈 소스 컨트리뷰션 아카데미에 참가하여 FOSSLight라는 오픈소스에 참여하고 있다.
FOSSLight 이슈에서 good first issue 문제를 해결하고 있다.
들어가기전🧐
DCO란?
-> Developer Certificate of Origin으로 오픈 소스에서 자신이 기여한 PR 등 코드에 대해서 인증하는 방법을 의미한다.
-> Signed-off Commit은 자신이 기여한 commit에 signed-off-by로 이름과 이메일을 남기는 대표적인 DOC이다. (아래는 Signed-off Commit하면 남게 되는 이름과 이메일이다.)
1. 원인 및 배경
- 나는 터미널에서 깃을 사용하는 것보다 소스트리나 IntelliJ와 같은 IDE에서 제공하는 깃 기능을 선호해왔다.
- 오픈소스와 같이 DCO인증이 필요하면 git commit 시 git commit -m "Commit Message" -s를 입력하여 DCO 개발자 원본 인증서에 동의하기 위해 -s옵션도 추가해야한다.
- 하지만 소스트리로 커밋 푸쉬했으니 이 과정이 당연히 생략되어 DCO 인증에서 막히게 되었다.
- DCO 인증이 되지 않으면 아래 그림과 같이 DCO 인증이 되어 있지 않다고 나오며 merge할 수 없게 된다.
- 그러면 이미 PR은 올려버렸지만 DCO인증이 되어 있지않은 상황에서 DCO인증을 할 수 있는 방법을 알아봅시다!!🧞♂️
2. 해결
- DCO 인증이 안되어 x 표시가 되어있을 때 옆에 Details를 클릭한다.( 위 사진에서 오른쪽 부분에 Details가 있다.)
- 그러면 아래와 같이 DCO인증을 할 수 있는 방법을 친절히 알려준다.
- 1번은 지금 있는 브랜치가 PR을 보낸 브랜치인지 확인하라는 뜻이다.(즉, PR을 보낸 브랜치로 브랜치를 변경한다.)
- 2번은 git rebase HEAD~2 --signoff 를 입력한다.
- 3번은 git push --force-with-lease origin branchName을 입력한다.(저의 경우는 브랜치 이름이 removeSpaceForSearchOssname이었습니다!!)
- 이렇게만 하면 해결 완료이다!!!! 끝!!!!!!💪
<<다시 PR을 확인해보면 DCO 문제가 사라진 것을 볼 수 있따!!!!>>