DSCM 인 git 의 개념과 branch/merge 전략, fork/pull request 를 설명하는 교육자료
git
jira-stash 연결 가이드
개요
JIRA 이슈 – stash 리파지토리 revision 간 연결 방법을 가이드한다.
원칙 : 1기능 = 1이슈 = 1브랜치
JIRA 이슈 – stash 리비전 연결 시 사내 방침은
1개의 (기능 or 버그) = 1개의 이슈 = 1개의 (임시)브랜치 입니다.
JIRA – stash 업무 플로우
업무 플로우는 다음과 같습니다.
처음에 연결만 시켜주면 그 뒤로 변경 사항 추적 연결은 JIRA 와 stash 가 알아서 합니다.
1) 이슈 생성
2) 이슈에 해당하는 브랜치 생성
3) 생성한 브랜치에서 해당 기능 개발
4) 생성한 브랜치를 develop 브랜치에 merge
5) develop 브랜치 -> master 브랜치로 merge
이슈 생성
다들 잘 아실테니 패스…
이슈에 해당하는 브랜치 생성
Create branch 를 클릭하면 아래와 같은 화면이 뜹니다.
Repository : 현재 개발중인 repository 선택
Branch type : 이슈 타입에 맞게 bugfix / feature 중 한 가지를 선택
Branch from : master 브랜치가 원칙이나 상황에 따라 develop 브랜치 선택하여도 무방
develop 브랜치를 선택하는 것이 유리한 경우
develop 브랜치가 너무 많이 진행되어 master / develop 간 차이가 너무 벌어진 경우
현재까지 develop 브랜치에서 진행된 내용을 반영하여야 하는 경우
Branch name : 이슈 이름이 영어인 경우 알아서 자동완성되나, 한글인 경우 이슈 키와 동일하게 기재됨. 상황에 맞게 적절히 기재할 것
생성한 브랜치에서 해당기능 개발
아래와 같이 작업하시면 됩니다.
git clone -> 생성한 브랜치로 check out -> 해당 기능 개발 후 commit -> push
JIRA 이슈와 stash 리비전 간 자동 연결이 되는 원리는 다음과 같습니다.
- stash 서버가 커밋 로그에 기재된 이슈 번호를 JIRA 서버에서 찾아냄
- 해당 JIRA 이슈와 커밋 리비전을 연결시킴
헌데, 최초에 Create branch 시 브랜치 이름을 JIRA 이슈 이름으로 자동생성하였기 때문에
pull request -> merge 시 자동으로 생성되는 commit log 로 인하여 JIRA 이슈 – stash 간 연결은
머지 시점에 자동으로 알아서 됩니다.
요약하면, 최초에 연결만 잘 해놓으면 머지 시점에 알아서 JIRA 이슈 – stash 리비전 간 연결이 됩니다.
생성한 브랜치를 develop 브랜치에 merge
Create pull request 클릭
본인이 개발한 브랜치 -> develop 브랜치 로 pull request 생성되는지 확인
pull request 부가정보 기입
Description : 그동안 달아뒀던 commit log 내용으로 알아서 자동생성되나, 맘에 안들면 수정해도 무방함
Reviewers : 생성된 pull request 의 코드 리뷰어를 기입. 리뷰어가 해당 pull request 를 보면서 온라인 코드리뷰를 진행할 수 있습니다.
코드리뷰
생성된 pull request 에서 Diff 탭 선택 -> 코드 변경 라인으로 커서 이동 -> 말풍선 클릭 -> 리뷰 내용으로 댓글을 달 수 있습니다.
pull request 한 코드에 문제가 없으면 merge / 마음에 들지 않으면 decline 을 선택할 수 있습니다.
merge 후 임시 브랜치 삭제
feature / bugfix 등의 브랜치는 해당 기능을 구현하기 위한 임시 브랜치입니다.
개발이 완료되어 머지하는 시점에는 삭제하는 것이 원칙입니다.
아래와 같이 체크박스를 선택하면 stash 가 알아서 삭제해 줍니다.
develop 브랜치를 master 브랜치에 merge
develop 브랜치는 delete 하지 않습니다. 이 외에는 임시브랜치 머지하는 것과 절차가 동일합니다.