Git Hub 를 통해 오픈소스 프로젝트 참여하기

김법우·2021년 7월 20일
0

github

목록 보기
1/1
post-thumbnail

Git Issue

이슈란 프로젝트를 진행하는 와중 생기는 모든 것들을 의미한다.

버그를 포함, 이슈는 새로운 기능이 될 수 도 있고, 개선해야할 점이 될 수도 있다.

Git Milestone

마일스톤은 프로젝트의 중요한 이벤트를 표시하는, 묶어내는 기능이다.

마일스톤은 말그대로 로마에서 길의 마일 단위로 돌을 놓던것에서 유래했다.

도착지로 가기위해 구현해야 할 기능들, 개선해야 할 사항들을 묶어낸

버전 관리 기능이라고 생각하면 쉬울 것 같다.

Issue 를 해결해 보자!

오픈 소스에 기여하는 개발자의 상황을 일반적으로 가정하고 실습을 진행해 보았다.

오픈소스 프로젝트에서 버그 리포트 혹은 개선 기능 필요 이슈 발생!

  1. 내가 할 수 있을 것 같다는 자신감
  2. 타겟 저장소를 Fork
  3. 로컬 저장소로 Clone
  4. 작업 브랜치 생성 (복잡하지 않다면 마스터에서)
  5. 작업 수행 - add, commit (staging) , push
  6. 타겟 저장소의 (원본 프로젝트 저장소) 변경사항을 확인하고 내 Fork 저장소에 반영
  7. fetch upstream (원본 저장소의 변경사항 가져오기)
  8. merge upstream/master
  9. 커밋 내역 정리 rebase (비추천)
  10. Fork 저장소로 push
  11. 타겟 저장소로 Pull request 생성
  12. 이슈 커밋 메세지, 리퀘스트 메세지 활용시 효율적
  13. 리뷰 및 피드백 (6 ~ 반복)

1. 타겟 저장소 Fork

타겟 저장소의 우상단 Fork 를 눌러 나의 저장소로 복사한다.


2. 로컬 저장소 clone

cd <적당한 디렉토리>
git clone <Fork 받은 remote 저장소의 url>


3. 작업수행 후 스태이징

git add .
git commit -m "Issue 5 resolve"


4. 타겟 저장소의 변경사항을 로컬 저장소에 최신화 하기

git remote
git remote add upstream <타겟 저장소 url>
다시 git remote 하면 upstream 이 추가되어 있을 것이다.

git fetch upstream
git merge upstream/master

타겟 저장소 (오픈 소스 저장소) 의 최신 커밋 이력 (변경사항)이 내 로컬 저장소로 바로 합쳐진다.

위의 과정에서 충돌이 발생 할 경우,
충돌을 해결하고 (upstream 의 최신사항과 내 수정사항을 비교해가며)
다시 add, commit 과 내 origin remote 에 push 하는 과정을 거친다.

5. Origin Remote (Fork 받은 저장소) 로 push

git push origin master


6. 타겟 저장소 (원본 저장소) 로 Pull Request 생성

base 인 타겟 저장소 <- 현재 head 인 내 로컬 저장소
이슈 해결, 버그 수정, 혹은 작업 변경 커밋 라인을 원본 저장소에 반영해달라는 의미이다.

오픈 소스 프로젝트의 이슈에 대한 풀리퀘스트는 일반적으로
자신들의 풀 리퀘스트 템플릿을 가진다.
해당 템플릿에 맞게 제목과 변경 사항에 대한 요약, Closing Issue 혹은 Resolve Issue 커맨드 등등을 담아 생성한다.

더보기

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

오픈소스 프로젝트의 책임자가 pull request 를 merge 하면 종료된다.


추가 사항

merge 와 rebase의 차이점은?
branch 작성 규칙이 있나요?
git hub 협업 flow 는 어떻게 진행되나요?
커맨드 라인으로 작업해야 하나요?
참고 사이트 및 자료
https://velog.io/@imacoolgirlyo/Git-fork%EC%99%80-clone-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-5sjuhwfzgp
https://engineering-skcc.github.io/github%20pages/github-pages-fork-2/
https://backlog.com/git-tutorial/kr/intro/intro1_3.html
https://medium.com/happyprogrammer-in-jeju/git-%EB%82%B4%EB%B6%80-%EA%B5%AC%EC%A1%B0%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-1-%EA%B8%B0%EB%B3%B8-%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8A%B8-81b34f85fe53

profile
개발을 사랑하는 개발자. 끝없이 꼬리를 물며 답하고 찾는 과정에서 공부하는 개발자 입니다. 잘못된 내용 혹은 더해주시고 싶은 이야기가 있다면 부디 가르침을 주세요!

0개의 댓글