[GitLab] Branch

가을·2026년 6월 25일

GitLab: Main과 브랜치Branch의 개념 및 협업 방법

1. Branch란?

GitLab에서 브랜치는 특정 시점의 코드를 기반으로 독립적으로 작업할 수 있는 공간

프로젝트를 개발하다 보면 여러 사람이 동시에 기능을 개발하거나 버그를 수정해야 하는데 이때 충돌을 피하기 위해 Git은 브랜치라는 개념을 제공

Branch란 메인 코드를 건드리지 않고 독립적으로 개발할 수 있는 작업 공간


2. Main 브랜치란?

Main 브랜치는 프로젝트의 기준이 되는 브랜치

  • 배포 가능한 안정적인 코드 유지
  • 검증된 코드만 반영
  • 직접 개발하지 않고 Merge를 통해서만 반영

예를 들어 AI Agent 프로젝트를 진행한다고 가정할 때

main

├── agent.py
├── rag.py
├── tools.py
└── prompt.py

3. 브랜치가 필요한 이유

모두가 main 브랜치에서 작업한다면 다음과 같은 문제가 발생할 수 있음

  • 코드 충돌
  • 기능 개발 중 서비스 장애
  • 다른 사람의 코드 덮어쓰기
  • 배포 불가능한 코드 반영

그래서 각자 브랜치를 생성하여 작업

main

├── feature/search-agent
├── feature/rag-agent
└── feature/slack-agent

각 브랜치는 서로 영향을 주지 않기 때문에 안전하게 개발할 수 있음


4. Main에서 브랜치 생성하기

최신 코드를 가져오기

git checkout main
git pull origin main

브랜치 생성

git checkout -b feature/rag-agent

또는

git switch -c feature/rag-agent

현재 상태

main
 └── feature/rag-agent

이제 feature/rag-agent 브랜치에서 자유롭게 개발할 수 있음


5. 브랜치에서 개발하기

class RAGAgent:
    def retrieve(self, query):
        pass

개발을 완료한 후 변경사항을 Commit

git add .
git commit -m "feat: RAG Agent"

6. 브랜치를 GitLab에 Push

로컬에서 작업한 내용을 GitLab에 업로드

git push origin feature/rag-agent

GitLab에서 확인하면 새로운 브랜치가 생성된 것을 볼 수 있음

main

└── feature/rag-agent

7. Merge Request(MR) 생성

기능 개발이 완료되면 GitLab에서 Merge Request를 생성

feature/rag-agent
        ↓
       MR
        ↓
      main

Merge Request는 개발한 코드를 main에 반영해달라고 요청하는 과정

이 단계에서 팀원들은 다음을 확인

  • 코드 품질
  • 버그 여부
  • 테스트 결과
  • 프로젝트 규칙 준수 여부

8. Main 브랜치로 Merge 하기

리뷰가 완료되면 Merge를 진행

Merge 전

main
 └── 기존 코드

feature/rag-agent
 └── RAG 기능 추가
Merge 후

main

├── 기존 코드
└── RAG 기능

이제 main 브랜치에도 새로운 기능이 반영


9. Merge 이후 브랜치 삭제

브랜치의 역할이 끝났다면 삭제

git branch -d feature/rag-agent

원격 브랜치 삭제

git push origin --delete feature/rag-agent

또는 GitLab에서 Merge 시 "Delete source branch" 옵션을 선택할 수 있음


10. 실무 협업 흐름

실제 프로젝트에서는 다음 순서로 작업이 이루어진다.

1. main 최신화
↓
2. 브랜치 생성
↓
3. 기능 개발
↓
4. Commit
↓
5. Push
↓
6. Merge Request 생성
↓
7. 코드 리뷰
↓
8. Merge
↓
9. 브랜치 삭제

정리

  • Main : 안정적인 기준 코드
  • Branch : 독립적인 작업 공간
  • Push : GitLab에 작업 내용 업로드
  • Merge Request : 코드 반영 요청
  • Merge : Main 브랜치에 최종 반영

0개의 댓글