팀 프로젝트에서는 main 브랜치를 신성한 곳으로 취급하여 절대 바로 수정하지 않습니다.
핵심 흐름:
1. 작업 공간(Branch) 따로 만들기
2. 작업 후 내 공간만 GitHub에 올리기
3. "내 거 합쳐줘"라고 요청서(PR) 보내기
4. 승인되면 합치기(Merge)
1단계 : 작업 공간(Branch) 만들기 (서버 터미널)
가상의 상황을 만들어보죠. "새로운 기능인 데이터 로더(dataloader)를 만든다"고 가정합시다.
# 1. 현재 내가 main 브랜치에 있는지 확인
git checkout main
# 2. 최신 상태로 업데이트 (습관적으로 해야 함)
git pull origin main
# 3. 새로운 브랜치 생성 및 이동 (이름은 보통 feat/기능명, fix/버그명)
git checkout -b feat/dataloader
2단계: 작업하고 커밋하기 (서버 터미널)
이제 안심하고 코드를 막 수정하세요. 여기서 망쳐도 main은 멀쩡합니다.
# 1. 파일 생성 또는 수정
echo "print('Data Loading...')" > dataloader.py
# 2. 장바구니 담기
git add .
# 3. 커밋 (작업 저장)
git commit -m "Add dataloader base code"
3단계: 내 브랜치 업로드 (서버 터미널)
이제 중요한 점은 git push origin main이 아닙니다. 내가 만든 브랜치 이름으로 올려야 합니다.
git push origin feat/dataloader
4단계: Pull Request(PR) 만들기 (GitHub 웹사이트)
👉 이 상태가 바로 "검토 대기 중"인 상태입니다.
실제 회사라면 여기서 동료들이 코드를 보고 댓글(Review)을 달아줍니다.
5단계: 합치기 (Merge) (GitHub 웹사이트)
팀원이 검토를 끝냈다고 가정하고, 본인이 직접 합쳐보겠습니다.
6단계: 내 컴퓨터(서버) 동기화 (서버 터미널)
GitHub(원격)의 main은 이제 코드가 합쳐져서 최신이 되었지만, 내 서버의 main은 아직 옛날 상태입니다. 업데이트를 해줘야 사이클이 끝납니다.
# 1. 다시 main 브랜치로 돌아오기
git checkout main
# 2. GitHub에서 최신 변경 사항(합쳐진 코드) 가져오기
git pull origin main
# (이제 dataloader.py 파일이 main에도 생겼을 겁니다)
# 3. 다 쓴 작업 브랜치 삭제하기 (청소)
git branch -d feat/dataloader
요약 (이 사이클만 반복하세요)
1. git checkout -b feat/기능이름 (작업방 만들기)
2. git add . -> git commit (작업하기)
3. git push origin feat/기능이름 (GitHub에 올리기)
4. 웹에서 PR 작성 & Merge (합치기)
5. git checkout main -> git pull origin main (내 컴퓨터 업데이트)