Git & GitHub

[GitHub] 오픈소스에 기여에 도전하기 (first-contributions)

랑 이 2025. 1. 5. 02:20
반응형

간단하게 오픈소스 프로젝트에 기여할 수 있는 리포지토리를 발견해서 실습하는 과정을 써보려고 합니다

깃허브에서 오픈소스에 기여한다고 생각하면 저는 "그거는 대단한 사람들만 하는거 아닌가?" 라고 생각했습니다

 

하지만 누구나 조그만 문제들을 발견하고 이를 수정을 요청하는 것도 기여에 한 일부분이더군요

앞으로 오픈소스 기여에 적극 동참하며 많은 참여를 해보려고 합니다

 

이번에 first-contributions 프로젝트를 통해서 기여하는 방법에 대해서 알아보겠습니다

First Contributions

오픈소스 기여를 처음 해보는 사람들을 위한 실습 프로젝트입니다 

이 프로젝트를 통해서 기초적인 Git,GitHub,오픈소스 기여 방법에 대해서 학습할 수 있습니다

 

First Contributions

 

GitHub - firstcontributions/first-contributions: 🚀✨ Help beginners to contribute to open source projects

🚀✨ Help beginners to contribute to open source projects - firstcontributions/first-contributions

github.com

 


First Contributions에 기여하는 방법

First Contributions  (한국어)

 

first-contributions/docs/translations/README.ko.md at main · firstcontributions/first-contributions

🚀✨ Help beginners to contribute to open source projects - firstcontributions/first-contributions

github.com

위 링크에 접속하면 First Contributions의 한국어 버전 READEM.md 파일이 있습니다 

READEM.md에 적혀있는 오픈소스 기여 방법대로 진행해보겠습니다

Git 설치하기

 

Git - Git 설치

이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0

git-scm.com

오픈소스에 기여하는 데 있어 Git을 사용하기 때문에 없다면 먼저 설치를 진행해 줍니다

Linux(Ubuntu)에 Git 설치하기

패키지 관리도구를 사용하여 설치할 수 있습니다

터미널에 아래 명령어를 입력하여 간단하게 Git을 설치할수 있습니다

sudo apt update
sudo apt install git

Windows에 Git 설치하기

Git 공식 웹사이트

 

Git

 

git-scm.com

1. Git 공식 웹사이트에 접속하여 "Download for Windows" 버튼을 클릭하여 다운로드합니다

2. 다운로드한 설치 파일을 실행합니다 

3. 여러 가지 설정이 나오는데 웬만하면 기본설정으로 진행합니다

4. 터미널 또는 명령 프롬프트에 아래 명령어를 실행하여 설치를 확인

git --version

기여할 저장소 포크(fork) 하기

First Contributions 원격 저장소를 자신의 GitHub 계정으로 포크(fork)를 해줍니다

포크(fork)는 프로젝트의 자신의 게정으로 복사하는 작업을 의미한다

포크를 진행하면 "Create a new fork" 페이지가 나오는데 기본으로 설정하고 Create fork를 클릭해 줍니다

포크가 완료되면 내 계정에 복제본이 생성된 걸 볼 수 있다

여기서 Fork를 진행하는 이유는 Clone을 통해서 PR(Pull Request)를 보내는 것은 원격 저장소의 권한이 있을 경우에만 일반적으로 가능하기 때문입니다

 

즉 오픈 소스 기여자가 아닌 저장소의 소유자 및 협업자로 등록되어 있을 경우에만 원본 저장소에 대한 푸시 권한이 존재해서

오픈 소스에 기여하는 기여자는 이러한 권한이 없기 때문에 먼저 Fork 작업을 통해 자신의 계정에 복사본을 만들어 진행하게 됩니다 

 

오픈소스 기여에는 Fork후 PR을 보내는 게 일반적이며 Fork를 진행하고 기여자가 일부를 수정하여 기여할 경우 소유자는 해당 PR을 검토 후에 문제가 없으면 병합을 진행하게 됩니다

저장소 클론하기

복제한 저장소의 수정이나 추가를 하기 위해서 로컬 환경으로 복사하여 작업하기 위해 저장소를 클론을 진행합니다

저장소의 우측 상단에 있는 Code를 클릭하면 보이는 URL을 복사해 줍니다 

아래 git 명령어를 실행하여 저장소를 로컬환경으로 클론 합니다

git clone "복사한 URL"

작업용 브랜치(Branch) 생성하기

main(marster)에서 진행하지 않고 작업에 맞는 브랜치를 만들어 분리 관리 하는 게 좋기 때문에 브랜치를 만들어준다

아래 명령어를 통해 브랜치 생성과 전환을 동시에 진행해 준다

git switch -c "브랜치 이름"

그다음 정상적으로 생성 및 전환이 되었는지 확인하기 위해 아래 명령어로 확인해 준다

git branch

여기서 나는 contributors를 추가하는 작업을 하기 때문에 add-contributors라고 간단하게 작성했다

기여 완료한 작업 내용을 커밋(Commit) 하기

First Contributions는 Contributors.md파일에 본인의 이름을 중간 부분에 추가하라고 명시되어 있습니다

 

작업이 완료되면 아래 명령어를 통해 수정한 파일을 스테이징 영역에 추가해 줍니다

git add Contributors.md

아래 명령어는 변경사항을 볼 수 있습니다

git status

git commit 명령어를 통해서 변경사항을 커밋해 줍니다

git commit -m "Add your-name to Contributors list"

(Add your-name은  본인 이름으로 변경)

 

💢 Author identity unknown

commit을 진행하려고 했는데 에러 메시지가 나왔다 이메일과 이름을 설정하라는 메시지다

(최근에 컴퓨터를 새로 세팅하면서 처음부터 다시 해야 하는 상황...)

 

2가지 명령어로 이메일과 이름을 설정해 주면 된다

git config user.name "사용자 이름"
git config user.email "이메일 주소"

 

이메일과 이름을 설정해 주니 정상적으로 커밋을 완료했다

변경사항을 GitHub에 Push 하기

아래 명령어를 실행하여 GitHub에 Push를 해줍니다

git push -u origin 브랜치 이름

VScode를 이용해서 작업을 했는데 아래와 같이 GitHub Sign in이 나왔다 

Sign in with your browser를 클릭해 브라우저 상으로 로그인을 진행해 줬다 

브라우저에서 로그인을 완료하니 아래와 같이 Push가 완료된 메시지를 볼 수 있었다

PR(Pull Request) 보내기

이제 우리가 작업한 내용을 소유자(담당자) 에게 검토받을 일만 남았다 이를 위해 PR을 보내야 한다

코드의 변경 사항을 검토하고 병합하기 위한 요청을 보내는 방식을 PR(Pull Request) 이라고 부른다

 

먼저 복제한 저장소에 다시 접속하면 Compare & pull request 버튼과 탭이 생성된 걸 볼 수 있는데 눌러보자

PR을 생성하는 창이 나오는데 여기서는 title을 "Add 사용자 이름 to Contributors list" 형태로 작성하라고 되었기 때문에 

형식에 맞춰서 입력 후에 Create pull request를 통해 PR을 보냈다

PR이 진행되고 있는 중이다 원래는 담당자나 검토자가 직접 검토 후에 병합 여부를 결정하는데 

first-contributions 프로젝트는 자동으로 검토가 진행되는 방식으로 보인다

얼마 지나지 않아서 보냈던 PR이 Merged(병합)이 완료되었다

여기까지 GitHub 오픈 소스에 기여하는 기초적인 방법을 완료하였습니다

오픈소스에는 어떻게 기여하지 막막했었는데 이렇게라도 기여를 해보니 정말 재밌고 뿌듯한 경험이 되었습니다

 

다음에는 운영되고 있는 오픈소스에 기여해 보고 과정을 한번 작성해보고 싶습니다

반응형