[ 一日30分 인생승리의 학습법] [Git] Github 오픈소스 기여해보기
2023.08.02 00:57
[ 一日30分 인생승리의 학습법] [Git] Github 오픈소스 기여해보기

안녕하세요 Foma ???? 입니다!
오늘은 오픈소스에 기여하는 방법에 대해서 알아보려고 합니다!
바로 시작할게요~
1. 기여할 오픈소스 찾기
평소 자기가 관심이 있거나, 기여해보고 싶은 공개 레포지토리를 찾습니다.
(저는 iOS 면접질문을 정리하는 iOS-Dev-Career 라는 레포지토리를 선택했습니다.)

2. 내 레포지토리로 가져오기
레포지토리 우측 상단에 보면 Fork라고 적혀있을거에요.
해당 버튼을 눌러서 내 레포지토리로 가져옵니다.

가져오면 자신의 깃헙에 레포지토리가 만들어진 것을 볼 수 있습니다.

3. 로컬로 레포지토리 복사해오기
위에서 가져온 레포지토리를 로컬(자신의 컴퓨터)에 복사합니다.
터미널을 켜고 원하는 위치로 이동한 뒤 아래와 같이 git clone 복제한 깃헙 주소를 적어줍니다.

$ git clone <복제한 깃헙 주소>
주소는 Code 버튼을 누르면 확인할 수 있습니다.

클론이 완료되면 아래와 같이 폴더가 복제된 것을 볼 수 있습니다.


4. 원래 레포지토리 정보 추가해주기
위의 레포지토리는 제 깃헙(origin)에서 다운받은 상태이기 때문에 현재 원래 레포지토리(upstream)의 정보를 알 수가 없습니다.
고로 현재 폴더 위치로 이동해서 원래 레포지토리 정보를 추가해줍니다.

$ git remote add upstream git://github.com/<원래 주인 이름>/<레포지토리 주소>
5. 내가 작업할 공간 만들기
이제 복제한 레포지토리에 제가 기여할 공간을 만들어 줘야겠죠?
자신만의 공간을 만들기 위해선 자신의 branch를 생성해 줘야합니다.
아래와 같이 git checkout -b 원하는 브랜치 이름을 정해주고 생성해줍니다.

git checkout -b <원하는 브랜치 이름>
6. 내 브랜치에 푸쉬하기
이제 자신이 기여할 부분을 작업하고 위에서 만든 자신의 브랜치에 커밋 후 푸쉬해줍니다.
$ git add --all
$ git commit -m "커밋할 내용"
$ git push origin <자신의 브랜치 이름>

7. 레포지토리 주인에게 검수 요청하기
위에서 작업한 것들을 원래 레포지토리에 합치기 위해선 원래 주인의 허락이 필요합니다.
(만약 이상한 것들을 작업해놓고 합쳐달라 요청하면 해당 레포지토리가 망가지게 되겠죠?)
이제 자신의 깃헙에 있는 해당 레포지토리로 이동하면 아래와 같이 Compare & pull request 버튼이 있을거에요.
이건 "새롭게 업데이트된 작업이 있느니깐 검사맡아봐" 라고 하는 것과 같습니다.

자신이 작업한 사항들을 md 문법에 맞춰서 적어줍니다.
원래의 주인의 허락을 맡으려면 최대한 세세하게 적는게 좋겠죠?

만약 주인이 허락을 했으르 경우 자신이 작업한 것들이 원래의 레포지토리에 합쳐지게 됩니다.


원래 레포지토리의 Contributors에 추가되는 것도 볼 수 있습니다.

8. 자신의 레포지토리 업데이트 하기
위에서 원래 레포지토리에 자신의 작업한 것들이 합쳐졌죠?
이제 그 합쳐진 레포지토리로 자신의 깃헙에 복제한 레포지토리를 업데이트 해줘야 합니다.
복제한 레포지토리로 이동하면 우측 상단에 Fetch upstream이라고 있을거에요.
거기서 Fetch and merge를 눌러서 업데이트 해줍니다.

이렇게 업데이트를 해주면 자신의 레포지토리에도 자신이 기여한 것들이 합쳐진 모습을 볼 수 있습니다.

P.S
예전부터 언젠가는 오픈소스에 기여해 봐야겠다 다짐은 했었는데 뭔가 오픈소스에 기여한다는게 엄청난 실력을 가져야만 할 수 있다고 생각했었다. 그런데 md 파일을 수정하거나 간단한 오류같은 것만 수정하는 것도 기여하는 활동이었다. 내가 작업한 것이 다른 사람 레포지토리에 합쳐진 것을 보니 뭔가 신기하고 뿌듯했다..ㅎ 이제 자신감도 얻었으니 정말 알려진 오픈소스에 코드로 기여해보는 것을 목표로 삼아야겠다.
[출처] https://fomaios.tistory.com/entry/%F0%9F%A4%BC-Git-%EA%B9%83%ED%97%99-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EA%B8%B0%EC%97%AC%ED%95%B4%EB%B3%B4%EA%B8%B0
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

