22.01.09 깃허브 contributor가 되는 법

Saparian·2022년 1월 9일
0

오늘의배움

목록 보기
3/53

좀 진도를 많이 뺐다.
아니 사실 그 전에 너무 조금 뺀게 아닌가 싶기도 하다.
오늘 책의 진도표를 보니까 이 책이 7일코스로 짜여져있었다.
그래서 한 챕터를 다 끝냈다.

이번주 안에 이 책을 다 끝내보도록 하자.
진도표상으로는 4일이면 끝난다.

지난 공부까지는 개인 프로젝트(또는 소규모의 팀프로젝트)를 작성하고 관리하는 내용이었다면
오늘 배운 내용은 다른 사람의 프로젝트를 기반으로 기능을 구현하고 pull request를 통해서 contributor가 되는 법을 배웠다.
아마도 contributor가 많이 존재하는 오픈소스에 기여할 때 많이 사용될 기능이지 않을까한다.

fork

branch와 비슷한 기능이지만, 브랜치와는 달리 혼자서만 사용할 수 있는 새로운 원격저장소이기 때문에 온갖 실험적인 커밋이 가능하다.

남의 저장소를 통째로 가져올 수 있는 기능이며, 원 개발자는 누가 자신의 저장소를 fork 했는지 추적이 가능하다. (누가 이 코드에 관심이 있는지, 어떤 기능들을 원하고있는지 알아볼 수 있는 좋은 척도가 될 것 같다)

Pull request

원본저장소에 본인이 만든 코드를 집어넣고 싶다면 (contributor가 되고싶다면)
pull request를 통해 원 개발자에게 병합요청을 할 수 있다.

원개발자는 바로 승인을 할 수도 있고, 코멘트를 달수도 있으며, 수정요청을 할 수도 있다.

  • 코드를 짠 후 리퀘스트를 보낼 수 있지만, 원본저장소에 이미 새로운 코드들이 많이 추가되어있을 수 있다.
  • 이런 경우에는 코드에 충돌이 일어날 수 있어 해당 문제를 해결하고 pull request를 요청해야한다.

이때 사용되는 것이 rebase(재배치) 기능이다.
물론 단순히 충돌을 해결한 새 커밋을 작성해서 리퀘스트를 보낼수도있다.
(이 경우에는 커밋이 지저분해보일 수 있다.)

Rebase (재배치)

Rebase는 원본저장소의 최신커밋을 기준으로 내가 만든 코드를 충돌없이 병합하는 과정이다. 이러한 rebase 과정을 통해서 충돌을 해결하고, 다시 pull request를 보낼 수 있다.

원격저장소 추가 (소스트리)

rebase기능을 사용하기 위해서는 내 로컬저장소에 원본저장소의 커밋도 최신화 시키기 위한 원격저장소 추가기능을 사용해야 한다. (해당 기능은 소스트리에 있다고 한다. CLI에도 있을 것 같지만 아직 배우지 않았다.)

원격저장소 추가 기능을 사용하면 내 로컬저장소에서 원본저장소의 커밋 진행내용을 함께 볼 수 있기 때문에 유용하다.

  • 원본저장소를 추가할때 통상적으로 사용되는 관용적인 닉네임은 upstream이다. (그리고 기본적인 원격저장소의 닉네임은 origin을 사용한다.)

강제푸쉬

rebase 기능은 매우 조심해서 사용해야한다.
기존 이력이 삭제될 수 있기때문에 여럿이 사용하는 브랜치에서 사용하게된다면 위험하다.
때문에 원격저장소에 푸쉬할때 강제푸쉬 기능을 사용해서 푸쉬해야한다.

  • 누군가가 rebase하려는 코드를 사용하고있지 않아야한다.
  • 때문에 반드시 혼자만 사용하는 브랜치에서 수행해야한다.
  • 혼자서 사용하는 브랜치에서는 마음대로 진행해도 된다.

다음 공부할 내용

  • 깃허브 - 챕터5_실무 사례와 함께 git 다루기
  • 파이썬 - PyQt5 DB데이터 추가 및 조회, 새창 띄우기 (여기 진도 언제 나가지.. ㅠ)

0개의 댓글