이슈란 프로젝트를 진행하는 와중 생기는 모든 것들을 의미한다.
버그를 포함, 이슈는 새로운 기능이 될 수 도 있고, 개선해야할 점이 될 수도 있다.
마일스톤은 프로젝트의 중요한 이벤트를 표시하는, 묶어내는 기능이다.
마일스톤은 말그대로 로마에서 길의 마일 단위로 돌을 놓던것에서 유래했다.
도착지로 가기위해 구현해야 할 기능들, 개선해야 할 사항들을 묶어낸
버전 관리 기능이라고 생각하면 쉬울 것 같다.
오픈 소스에 기여하는 개발자의 상황을 일반적으로 가정하고 실습을 진행해 보았다.
오픈소스 프로젝트에서 버그 리포트 혹은 개선 기능 필요 이슈 발생!
타겟 저장소의 우상단 Fork 를 눌러 나의 저장소로 복사한다.
cd <적당한 디렉토리>
git clone <Fork 받은 remote 저장소의 url>
git add .
git commit -m "Issue 5 resolve"
git remote
git remote add upstream <타겟 저장소 url>
다시 git remote 하면 upstream 이 추가되어 있을 것이다.
git fetch upstream
git merge upstream/master
타겟 저장소 (오픈 소스 저장소) 의 최신 커밋 이력 (변경사항)이 내 로컬 저장소로 바로 합쳐진다.
위의 과정에서 충돌이 발생 할 경우,
충돌을 해결하고 (upstream 의 최신사항과 내 수정사항을 비교해가며)
다시 add, commit 과 내 origin remote 에 push 하는 과정을 거친다.
git push origin master
base 인 타겟 저장소 <- 현재 head 인 내 로컬 저장소
이슈 해결, 버그 수정, 혹은 작업 변경 커밋 라인을 원본 저장소에 반영해달라는 의미이다.
오픈 소스 프로젝트의 이슈에 대한 풀리퀘스트는 일반적으로
자신들의 풀 리퀘스트 템플릿을 가진다.
해당 템플릿에 맞게 제목과 변경 사항에 대한 요약, Closing Issue 혹은 Resolve Issue 커맨드 등등을 담아 생성한다.
더보기
오픈소스 프로젝트의 책임자가 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