Git workflow에 대해 알아봅시다

heauchi·2024년 7월 7일

When I Was Mentee - Front

목록 보기
6/21
post-thumbnail

Git, Github 코딩애플의 강의를 들으며 정리한 Git Workflow 내용을 바탕으로 추가적인 내용을 조사한 글입니다.

이 글에서 제공하는 정보들

Git을 사용하여 협업하는 여러가지 방식들

일반적으로 잘 알려져있는 워크플로우

Git을 사용하여 협업하는 여러가지 방식들


Git은 사용자가 변경 사항을 관리하는 방식을 굉장히 자유롭게 만들었습니다. Git이 유연성에 중점을 두고 있다는 점을 감안할 때 Git과 상호 작용하는 표준화된 방법은 없습니다.

따라서 협업을 할 때 Git이 관리하는 프로젝트에서 변경 흐름이 어떻게 적용될지에 대해 팀 전체가 합의하는 것이 중요합니다. 팀이 같은 방식으로 버전관리를 하려면 합의된 Git workflow를 개발하거나 선택해야 합니다.

워크플로우를 적용하게 되면
1. 브랜치 관리가 쉬워지고
2. 팀원이 아무리 많아도 개발절차가 매끄러워집니다.

일반적으로 잘 알려져있는 워크플로우


이 글에서 소개하는 워크플로우들은 무조건 꼭 지켜야하는 규칙이라기 보다는 각자의 혹은 팀의 개발환경에 맞는 워크 플로우를 직접 설계하기 위해 참고할 만한 전략이 저런 것들이 있구나 정도로만 알아두면 될 것 같습니다.

Gitflow Workflow


항상 안정적인 release를 하기 위해 Gitflow전략을 사용하게 됩니다.
운영 방식은 5개의 브랜치를 운영하는 식입니다.

  • main branch
  • develop branch(개발용)
  • feature branch(develop에 기능추가용)
  • hotfix branch(main 버그 해결용)
  • release branch(develop을 main에 합치기 전에 최종 테스트 커밋을 따로 branch로 뺀다.)

develop branch 생성

main에서 무언가 추가하거나 변경하고 싶은 요소들이 생겼다면 main을 바로 변경하지 않고 develop이라는 사본을 만들어서 변경하고자 하는 내용들을 develop에서 진행하여 원본 보존과 기능개발 동시에 챙길 수 있습니다.

feature branch 생성

develop branch의 생성 목적을 달성하기 위해 feature branch를 파서 여러개의 기능들을 추가하게 되는데 완성되면 develop branch에 merge하여서 develop branch를 점점 업그레이드 시킵니다.

release branch 생성

이제 develop branch를 생성한 목적을 모두 달성하게 되어서 main에 합치기 전 release branch를 생성하여 오류가 없는지, 잘 돌아가는지 테스트를 진행합니다. 테스트를 마치고 이제 main에 합쳐도 되겠다라고 판단하면 main과 develop 모두에 합쳐줍니다.

hotfix branch 생성

release를 마치고도 갑자기 문제가 생기게 되어서 수정을 해야할 때는 main에서 hotfix branch를 파서 바로 버그를 수정하고 main과 develop 모두에 merge 해줍니다.

Gitflow Workflow의 전체적인 모습

Trunk-based Workflow


Gitflow처럼 매우 절차적으로 엄격한 규칙보다는 그냥 하고싶은대로 하는듯한 workflow도 있습니다.

그냥 main과 feature branch만 운영하면서 기능추가, 버그픽스등의 이슈가 발생하면 main에서 feature branch를 파생시키고 이슈가 해결되었다면 다시 main에 합치는 식으로 진행됩니다.

꼭 이 방법들 뿐만 아니라..


꼭 이러한 workflow가 아니더라도 갖가지 상황에 대응할 수 있는 다양한 workflow들을 인터넷에 검색해볼 수 있고 그런 workflow를 그대로 채택하는것 뿐만 아니라 전체적으로 보고 어떤 식으로 작업을 진행하면 좋을지 고민하고 전략들을 사용하면 될 것 같습니다.


참고문헌

0. 참고자료 : 🍎 코딩애플 강의 바로가기 🍎
1. 참고자료 : Git을 이용한 협업 워크플로우 배우기
2. 참고자료 : Git 워크플로 |Atlassian Git Tutorial

0개의 댓글