728x90

하나의 예시일뿐이며 해당 내용에 대한 작업 플로우는 아래 참고URL이 있으니 확인해 보시길 바랍니다.

Git을 사용하기 위한 세팅을 마친 "A책임"와 "B선임"는 서로 나뉘어서 코딩을 하기로 했습니다.

1. 20XX년 04월 01일, "A책임"과 "B선임"이 각각 브랜치를 땁니다.

"A책임"는 "main 페이지"를 만들기 위해 ‘feature/A-source’이란 이름으로, "B선임"는 "register 페이지"를 만들기 위해 ‘feature/B-source’ 이란 이름으로 "orgin/prod" 브랜치의 최신 커밋으로부터 새로운 브랜치를 만들었습니다.

   * 브랜치 앞에 ‘feature/‘처럼 슬래시로 구분된 이름을 달아주면 이 구분별로 브랜치를 묶어볼 수 있는 장점이 있습니다.


2. "A책임"와 "B선임"은 각자 브랜치에서 코딩을 합니다.

3. 20XX년 04월 05일 - A책임 : ‘feature/A-source’ 1차 작업 완료, "Pull Request"

   시간이 흘러 "A책임"이 main 페이지를 다 만들어 "orgin/dev" 에 ‘feature/A-source’ 브랜치를 merge 할려고 합니다.
   하지만 "예고 없이" 바로 합치기 보다는 "B선임"에게 리뷰를 먼저 받고 합치고 싶습니다.
   * 그러기 위해서 사용하는 것이 "Pull Request" 입니다. (git의 기능이 아니고 github에서 제공하는 기능입니다.)

 

4. 20XX년 04월 05일 - A책임 : "Pull Request" 버튼을 눌러 ‘feature/A-source’에서 "orgin/dev" 브랜치로 Pull Request(땡김 요청)

   "Github저장소"에 있는 "Pull Request" 버튼을 눌러 ‘feature/A-source’에서 "orgin/dev" 브랜치로 Pull Request(땡김 요청)를 보냅니다.
   * 즉, "feature/A-source"에 소스를 수정해놨으니 "orgin/dev" 브랜치에서 땡겨가라고 요청하는 것입니다.

 

5. 20XX년 04월 05일 - 배포담당자 : "Pull Requests"로 요청한 내용 확인 후 "Merge pull request"로 "orgin/dev"에 merge

그럼 GitHub저장소의 ‘Pull requests’섹션에서 "A책임"이 보낸 "Pull Request" 를 확인할 수 있습니다.
Files changed를 보고 잘 만들었는지 여부를 확인하고, 잘 되었다면 ‘Merge pull request’를 눌러 "A책임"의 커밋들을 "orgin/dev" 브랜치에 합칩니다. 원하는게 아니라고 생각되면 거부할 수도 있습니다.

 

6. 20XX년 04월 06일 - B선임 : 작업마치고 "Pull Request" 할려니 Merge Conflicts (소스 충돌) 우려 발생

그 와중에 "B선임"도 "register 페이지" 작업을 마치고 "orgin/dev" 브랜치에 "Pull Request"를 보내려 보니 "A책임"의 새로운 코드가 추가(20XX년 04월 05일)되어 "이책임"이 처음에 땄던 "orgin/dev" 커밋(20XX년 04월 01일)와 상태가 달라졌습니다.

   * "B선임"이 만든 소스는 'orgin/dev'에서 2020년 04월 01일에 브랜치를 땄기 때문에 옛날 버전이 되었습니다.
   * "A책임"이 2020년 04월 05일 'orgin/dev'에 소스를 추가하였기 때문입니다.

 

7. 20XX년 04월 06일 - B선임 : 'orgin/dev'의 소스를 자신의 "feature/B-source" 에 merge

"B선임"은 ‘선-merge 후-pull request’를 보냈습니다.
자신의 local 'feature/B-source'에 'orgin/dev'의 최신 커밋을 마우스 오른쪽 버튼을 눌러 Merge하였습니다.
그랬더니 Merge Conflicts(Merge 충돌) 이 났습니다.

 

8. 2020년 04월 06일 - B선임 : Merge Conflicts(Merge 충돌)해결

   "A책임"와 "B선임" 둘 다 같은 소스를 고치다 보니 충돌이 났습니다.
   코드를 보니 "B선임"의 코드가 맞다고 합니다.
   수동으로 "A책임"의 코드를 지우고 "B선임"의 코드를 남겨 commit+push 합니다.
   * marge compare 를 통해서 해당 부분을 체크해서 merge 처리 합니다.

 

9. 2020년 04월 06일 - 이제 "B선임"도 "orgin/dev"로 "Pull request"를 보내고 배포관리자는 merge합니다.

"A책임"이 확인하고 "merge"하니 오류가 없습니다.
"이책임"의 "feature/B-source"에는 "orgin/dev"의 코드도 잘 섞여있는 버전이 들어가 있기 때문입니다.

 

10. 이제 "orgin/dev"에 "A책임"의 "main 페이지" 와 "B책임"의 ‘"register 페이지"가 모두 반영되었습니다.

 

11. 배포를 위해 "orgin/dev"에서 "orgin/master" 브랜치로 "pull request"를 보내고 "배포관리자"는 merge 합니다.

 

참조 : 
https://medium.com/@psychet_learn/git-%EC%82%AC%EC%9A%A9%EB%B2%95-3%EC%9E%A5-github-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0-f53e765844e3
참조 : 
https://milooy.wordpress.com/2017/06/21/working-together-with-github-tutorial/

 

+ Recent posts