Git Branching
1. 브랜치 전략 세우기
다양한 직업과 교육 배경을 가진 팀원들이 함께 일할 때, 워크플로우에 대한 상반된 접근법이 있을 수 있습니다. 혼란스러운 개발 경험을 막기 위해 리더는 단일 브랜치 전략을 파악하고 널리 소통해야 합니다. 브랜치 워크플로우를 결정하는 것은 팀 규모, 경험 수준, 확장 요구사항 및 업계 제한과 같은 몇 가지 요인에 따라 달라집니다. 팀들이 정해진 워크플로우를 따르기로 선택할 수도 있지만, 특정 요구에 따라 맞춤화된 워크플로우를 만들 수도 있습니다. 어떤 전략을 선택하든 팀에게 워크플로우를 전달하고 필요한 경우 교육을 제공하는 것이 중요합니다.
협업에 미치는 영향
모든 사람이 동일한 워크플로우에서 조화롭게 작업할 경우 코드를 덮어쓰거나 마스터를 손상시킬 위험이 줄어 듭니다. 게다가, 모든 사람들이 개발 및 배포 프로세스에 익숙하기 때문에, 팀원들은 서로의 작업에 쉽게 기여할 수 있습니다. 명확하고 간결한 브랜치 전략은 새로운 코드를 병합하고 프로젝트를 진전시키는 리듬을 설정한다. 이러한 적응감은 팀원들이 회의를 준비하고 마감일과 작업량을 관리하는 데 도움이 됩니다.
중앙 집중식 워크플로우
중앙 집중화된 워크플로우에서는 단일 저장소와 마스터 브랜치를 사용합니다. 팀들은 다른 브랜치를 개발용으로 사용하지 않기 때문에 변경사항을 덮어쓸 위험이 큽니다.
이러한 유형의 워크플로우에는 공동 작업 흐름이 없지만, 좋은 커뮤니케이션을 사용하는 소규모 팀(개발자 5명 미만)에서 잘 작동하여 두 개발자가 동일한 코드를 동시에 작업하려고 하지 않도록 할 수 있습니다.
Feature branching
Feature branching이란 추가해야 하는 각 기능에 대해 새 분기를 만드는 것을 의미합니다. 기능에 대해 작업을 수행해야 하는 모든 사용자는 기능 브랜치에 커밋합니다.
feature branch는 더 큰 코드 리뷰, 푸시 규칙, 코드 승인자, 더 광범위한 테스트 세트가 필요하기 때문에 다양한 팀을 연결합 니다.
GitFlow
GitFlow는 Feature branch의 극단적인 버전입니다. GitFlow로 개발하면 마스터 브랜치와 별도의 개발 브랜치뿐만 아니라 Feature, Release, Hotfix를 지원하는 분기가 존재합니다. Develop 브랜치에서 개발되고, Release 브랜치로 이동하며, Master 브랜치로 병합됩니다.
feature branching과 마찬가지로 팀들을 연결합니다.
👍 GitLab Flow(Task-branch development) 👏
GitLab Flow는 이러한 개발 유형의 예로 기능 중심 개발 및 Feature 브랜치와 이슈 추적을 결합한 것이 특징입니다. GitLab Flow는 별도의 전용 브랜치를 사용하여 스테이징, 사전 프로덕션, 프로덕션과 같은 여러 환경을 프로비저닝하여 다운스트림 흐름을 커밋하여 모든 환경에서 모든 것이 테스트되었음을 보장합니다.
태스크 브랜치 개발은 팀원들이 요구사항을 작은 덩어리로 분해하고 태스크 브랜치를 통해 빠른 속도로 전달되도록 합니다. 이러한 유형의 워크플로우에는 코드 스니펫, 코드 리뷰 및 단위 테스트와 같은 협업 방식을 포함합니다. 게다가, 만약 테스트가 실패하면, 팀원들이 함께 작업하여 무엇이 잘못되었는지 확인할 수 있습니다.