Open Source 기여를 위한 첫 걸음

sangminnn·2020년 4월 8일
0

Open Source Project

목록 보기
1/1

글을 시작하며 ...

사실 개발공부를 하면서 다른 개발자 분들 중에서도 이런 분들이 많겠지만 나도

나중에는 꼭 오픈소스에도 기여하는 개발자들의 개발자가 되어야겠다 ...!

라는 생각을 하고 있었다.

하지만 생각이랑 실천은 다르지 않은가 ?

일단 해보기 위해 먼저 오픈소스에 기여하는 방법부터 알아보았고,

생각보다 그 절차가 간단하여 이번에는 이 내용부터 소개하려고 한다.

일단 Git은 개인적으로 사용법에 대해서는 어느정도 인지하고 있는 상태이기 때문에

기본 개념은 추후 기회가 될 때 하나씩 정리하도록 하고, 첫 글은 이것으로 시작하겠다.

++) 아래의 설명은 첫 pull request를 실습해볼 수 있도록 해외 개발자분이 만들어 둔

https://github.com/firstcontributions/first-contributions

위의 project의 README를 따라하며 개인적으로 정리해 보았습니다.

미리 간단히 순서로 보는 pull request 단계

급하게 pull request 작업을 배워야 하는 사람이라면 아래의 단계만 보고도

충분히 가능할 것이다.

  1. 해당 project fork
  2. git clone
  3. 이후 내가 사용할 branch making
  4. clone한 폴더에서 기여할 내용 변경 후 저장
  5. 이후 git add -변경한 파일-
  6. git commit -m "변경 메시지"
  7. git push origin -내 branch-
  8. 내 저장소 접근해서 해당 fork 한 project pull request

설명과 함께 보는 pull request

자, 이제 한 단계씩 살펴보면서 지나가보자.

1. 해당 project fork

이 부분은 아래의 그림에서 보는 것과 같이 내가 기여하고자 하는 Open Source의 Repository 에 가서 fork 버튼을 누른다.

이렇게 하면 내 Repository에 해당 Project가 추가된 것을 볼 수 있다.

2. git clone

이후 원격 저장소에는 잘 가지고 왔으니 local 로 해당 프로젝트를 받아올 차례이다.

이를 실행해주는 git clone 명령어를 사용해야 하는데,

기본 사용법으로는 아래 코드와 같다.

git clone <내 repository의 project url>

하지만 여기서 유의해야할 점이 있는데,

위의 그림에서 보는 것처럼 우측 상단의

Clone or download 라고 쓰여진 초록색 버튼을 누르면 저 아래에 Clone을 할 수 있는 URL주소가 등장한다.

이 주소를 복사하여 git clone 명령어 뒤에 붙여서 terminal에서 사용해주면 해당 local directory에 잘 저장이 된다.

++) 단순히 해당 repository에서 브라우저의 주소창에 적힌 주소 값을 바로 git clone에 사용할 경우 해당 url 에는 Clone 버튼을 통해 복사한 주소와 다르게 .git 이 붙어있지 않기 때문에, Clone 버튼의 주소를 복사해 사용하는 것을 권장한다.

3. 이후 내가 사용할 branch making

기본적으로 clone 을 통해 local로 해당 project를 가지고 오면, 해당 project 폴더로 들어가서 내가 사용할 branch를 새로 만들어 주는 작업을 먼저 한다.

왜 branch부터 만들어주어야 하는지 간단하게 생각해보면,

project를 받아서 내가 바로 작업하다가 내가 작업한 결과물이 전체적으로 잘못되었을 경우 이를 해결하는데에는 조금 번거로운 작업이 생길 수 있다.

그런 문제를 더 간단하게 해결하기 위해, 해당 project를 받아오면 나만의 작업공간을 만들어 주어 보다 더 안전하게 project를 진행한다고 생각할 수 있겠다.

보통의 경우, git에서는

git branch <내가 만들 branch 이름>
git checkout <내가 작업할 branch 이름>

위의 두 명령어를 통해서 branch를 만들고, 해당 branch로 이동하여 작업하는데,

이 두가지 과정을 한번에 해결할 수 있는 명령어가 바로

git checkout -b <내가 만들 branch 이름>

이 명령어인 것이다.

이렇게 명령어를 적어준 다음 git branch 명령어로 현재 local project에 있는 branch 현황을 볼 수 있는데, 이 명령어를 실행하여 확인해보면 branch가 만들어지고, 해당 branch로 이동이 되어있는 모습을 볼 수 있다. (필자가 만든 branch 이름은 add-sangminnn)

4. clone한 폴더에서 기여할 내용 변경 후 저장

만약 위의 프로젝트를 따라서 실습해보았다면, 여기서는 해당 project directory에 Contributors.md 파일의 내용을 변경하는 것을 목표로 하기 때문에, 이 파일로 들어가보자.

여기에서의 규칙으로는 해당 파일에서 본인의 이름을 남기기 위해 해당 파일내용의 최하단에

[본인 아이디](본인의 github 주소)

위와 같은 방식으로 족적을 남기는 규칙을 정해주었다.

필자도 역시 따라해보았고, 아래와 같이 적어주고 저장하였다.

5. 이후 git add -변경한 파일-

여기서부터는 보통의 commit 단계와 동일한데,

짧게 설명해보자면 우리가 fork하고 Clone해온 과정을 통해

우리가 해당 project에 참여할 수 있게 되었고, 그 project에 대한 저장소를 github에 가지고 있는 상태이다.
(물론 해당 project owner가 우리가 접근할 수 있도록 허용해준 상태여야함.)

이렇게 될 경우 간단하게 추상화를 해보자면

원격 저장소(Remote Repository)

Staging Level

로컬 저장소(local Repository)

위 그림과 같이 수직관계? 로 볼 수 있다.

우리가 적용한 내용을 로컬 저장소에서 원격 저장소로 올려 보내기 위해서는

먼저,

git add <변경 내용이 있는 파일>

위 명령어를 통해 일단 원격 저장소에 올리기 위한 대상이라는 것을 알리는 움직임으로, 해당 파일을 Staging Level로 올려보낸다.

6. git commit -m "변경 메시지"

일단 변경 내용이 있는 파일을 Staging Level로 올린 후에는

내가 원격 저장소로 변경 사항을 올리며 어떤 변경을 하였는지 코멘트를 남긴다.

이 코멘트를 작성해 주는 작업이

git commit -m "변경 메시지"

이 명령어를 통한 작업이다.

7. git push origin -내 branch-

이 과정은 이제 Staging Level 에서 원격 저장소 에 올리는 과정이다.

보통 git clone을 통해 원격 저장소에서 로컬 저장소로 project를 받아오면, 원격 저장소의 기본 이름은 origin으로 내려오기 때문에

git push <원격 저장소 name> <내 branch name>

위와 같이 명령어를 작성해 주어야 하기 때문에

필자의 경우

git push origin add-sangminnn

명령어를 입력한다면 아래와 같은 결과가 나타날 것이다.

8. 내 저장소 접근해서 해당 fork 한 project pull request

이제 위의 명령어 결과를 확인했다면, github의 내 repository로 들어간다.

들어가게 되면 이전에는 없던 아래와 같은 옵션이 추가되어있는것을 볼 수 있다.

이 옵션이 나타났다면,

Compare & pull request 라고 적혀진 초록색 버튼을 눌러준다.

그렇게 된다면 위의 사진과 같이 pull request를 할수있는 창이 나타나는데,

여기에 pull request를 보내며 같이 보낼 message를 적어준 다음

Create pull request 버튼을 눌러주면 완료 창이 나타날 것이다.
(필자는 다시 구현해 본 것이라 위의 사진과는 살짝 다를 수 있습니다.)

여기까지가 pull request를 하기 위한 과정이다.

위의 프로젝트에서는 자동으로 merge가 될 수 있게 설정해두어서

내가 fork해온 프로젝트 원본으로 가서 변경사항을 적용해준

Contributor.MD 파일에 들어가 최하단을 확인해보면

내가 방금 적용한 변경 사항이 잘 적용되어 있는 것을 확인할 수 있다.


마치며 ...

평소에 git 사용법에 대해 어느정도는 알고있다고 생각했었는데,

이렇게 한번 더 필요에 의해 공부하고 적용해보니 이전에 놓쳤던 부분들에 대해서 한번씩 더 점검할 수 있는 시간이였다.

또한 오픈소스에 기여하는 일이 쉽지는 않겠지만, 나처럼 한번 시도해보고 싶은 사람이 있다면, 이 글을 읽고 한번쯤은 기여에 도전해보는 것을 추천해본다.

나도 앞으로 오픈소스에 기여하려고 할 것이고, 기여하게 된다면 그에 대한 글로 다시 돌아올테니 많이들 응원해주시면 감사하겠습니다.

++) 혹시 잘못된 내용에 대해 지적해주신다면 더 감사하겠습니다 :)

profile
생각하며 코딩하려고 노력하는 개발자가 되겠습니다.

0개의 댓글