git을 활용한 작업 flow

2022. 5. 6. 15:28
  • git을 활용한 작업 flow

 

1. main 브랜치 생성 및 main 브랜치에서 초기세팅 완료

2. main브랜치 github에 push

3. 작업하려는 로컬에서 해당 github의 main을 clone

4. 작업내용에 알맞는 git branch 생성 및 해당브랜치로 이동해서 작업 진행(생성 후 이동하는 것 까먹지 말것!!!)

5. 해당 브랜치에서 작업완료 후, main브랜치로 이동하여 github의 main을 pull

  • git pull origin main
  • 다른 누군가 작업을 먼저 완료하고 github의 main브랜치에 merge를 완료하여 ,  현재 내가 가진 main보다 최신버전이 있을 수 있기 때문
  • main을 pull 한 후에, 꼭 git status를 찍어서 commit이 필요할 경우 commit실행

 

6. main에서 pull이 완료되면, 작업한 브랜치로 이동하여 최신버전의 main브랜치를 merge시켜줌

  • git merge main
  • 그러면 현재 브랜치(새 기능구현이 완료된 브랜치)와 최신버전으로 업데이트된 main브랜치 사이에서 conlfict가 발생할 가능성이 있음
  • 여기서 confict를 해결하여 줌으로써  현재 브랜치를 github에서 main브랜치와 합칠 때 conflict가 발생하지 않도록 하는 것임

7. conflict 정리가 완료되면, 해당 브랜치에서 git push

  • git push '코드를 올릴 github이름' '작업내용을 올릴 github의 branch이름'
  • 이때 '작업내용을 올릴 github의 branch이름'은 현재 로컬의 브랜치명과 일치시켜주는 것을 추천
  • ex)현재 브랜치명이 feature/searchview이고, 코드를 올릴 github이름이 origin이라고 한다면
  • git push origin feature/searchview

8. git push가 완료되면, github에 들어갔을 때 해당 브랜치명의 pr(pull request)을 발생시킬 수 있음

  • pull request는 해당 브랜치를 main브랜치에 merge요청을 보내는 것임
  • 즉 특정브랜치의 pull request가 수락되면, 해당 브랜치의 내용이 main 브랜치에 merge되어서 합쳐지는 것임
  • 이때를 위해서, 5-7번에서 conflict를 해결한 것임. 5-7번에서 conflict를 해결해줘서, github에서 해당 브랜치를 main에 merge시킬 때 conflict가 발생하지 않고 깔끔하게 합쳐지는 것
  • 일반적으로는 이때 merge를 결정하는 권한이 내게 있지 않고, 다른사람에게 있을 가능성이 높음. 즉 상사 or 동료들의 확인을 한번 더 받고 문제가 없을 경우 최종적으로 main에 작업물을 반영하는 것임

9. pull request요청이 수락될 경우, main브랜치로 이동해서 github의 main을 다시 pull

  • pull request요청이 수락되었다 = github main이 다시 최신버전으로 업데이트 되었다는 뜻
  • 따라서 새로운 기능을 구현하기 위한 새로운 브랜치를 따기 이전에, main브랜치를 최신으로 업데이트한 후 해당 main branch에서 새로운 branch를 생성
  • git pull origin main

 

 

 

'개발도구 > git' 카테고리의 다른 글

Git 명령어 모음  (0) 2022.05.18
Git submodules // Git(9)  (0) 2022.02.25
Git tag // Git(7)  (0) 2022.02.25
Git Head // Git(6)  (0) 2022.02.25
노션 이동 완료Git : GitHub // Git(5)  (0) 2022.02.25

BELATED ARTICLES

more