GitLab에서 브랜치는 특정 시점의 코드를 기반으로 독립적으로 작업할 수 있는 공간
프로젝트를 개발하다 보면 여러 사람이 동시에 기능을 개발하거나 버그를 수정해야 하는데 이때 충돌을 피하기 위해 Git은 브랜치라는 개념을 제공
Branch란 메인 코드를 건드리지 않고 독립적으로 개발할 수 있는 작업 공간
Main 브랜치는 프로젝트의 기준이 되는 브랜치
예를 들어 AI Agent 프로젝트를 진행한다고 가정할 때
main
├── agent.py
├── rag.py
├── tools.py
└── prompt.py
모두가 main 브랜치에서 작업한다면 다음과 같은 문제가 발생할 수 있음
그래서 각자 브랜치를 생성하여 작업
main
├── feature/search-agent
├── feature/rag-agent
└── feature/slack-agent
각 브랜치는 서로 영향을 주지 않기 때문에 안전하게 개발할 수 있음
최신 코드를 가져오기
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 브랜치에서 자유롭게 개발할 수 있음
class RAGAgent:
def retrieve(self, query):
pass
개발을 완료한 후 변경사항을 Commit
git add .
git commit -m "feat: RAG Agent"
로컬에서 작업한 내용을 GitLab에 업로드
git push origin feature/rag-agent
GitLab에서 확인하면 새로운 브랜치가 생성된 것을 볼 수 있음
main
└── feature/rag-agent
기능 개발이 완료되면 GitLab에서 Merge Request를 생성
feature/rag-agent
↓
MR
↓
main
Merge Request는 개발한 코드를 main에 반영해달라고 요청하는 과정
이 단계에서 팀원들은 다음을 확인
리뷰가 완료되면 Merge를 진행
Merge 전
main
└── 기존 코드
feature/rag-agent
└── RAG 기능 추가
Merge 후
main
├── 기존 코드
└── RAG 기능
이제 main 브랜치에도 새로운 기능이 반영
브랜치의 역할이 끝났다면 삭제
git branch -d feature/rag-agent
원격 브랜치 삭제
git push origin --delete feature/rag-agent
또는 GitLab에서 Merge 시 "Delete source branch" 옵션을 선택할 수 있음
실제 프로젝트에서는 다음 순서로 작업이 이루어진다.
1. main 최신화
↓
2. 브랜치 생성
↓
3. 기능 개발
↓
4. Commit
↓
5. Push
↓
6. Merge Request 생성
↓
7. 코드 리뷰
↓
8. Merge
↓
9. 브랜치 삭제