본문 바로가기
AI 코딩

Git을 이용한 브랜치(Branch) 실용 가이드

by 피크나인 2025. 7. 14.

Git 브랜치 'developer01' 생성하고 활용하기 : 'main'브랜치와  협업작업

시나리오

안정적인 버전이 있는 main 브랜치가 있습니다. developer01 개발자는 새로운 '로그인 기능'을 추가하는 임무를 받았습니다. 이 작업을 main 브랜치에 직접 하면, 개발 중인 미완성 코드가 main에 섞여 다른 팀원에게 영향을 줄 수 있습니다. 따라서 developer01이라는 자신만의 작업 공간(브랜치)을 만들어 안전하게 기능을 개발하고, 완료된 후에 main에 합치는 과정을 따를 것입니다.

AI코딩에서 Git을 이용한 버전관리는 필수입니다.
AI코딩에서 Git을 이용한 버전관리는 필수입니다.


1.  브랜치 생성 및 이동

developer01이라는 이름의 브랜치를 새로 만들고, 그 브랜치로 작업 환경을 전환합니다.

추천하는 방법 (생성과 동시에 이동)

터미널에서 아래 명령어를 실행하세요. 새로운 브랜치를 만들고(-b 옵션) 즉시 그 브랜치로 이동(checkout)하는 가장 일반적인 방법입니다.

#bash
git checkout -b developer01

이 명령어는 아래 두 명령어를 합친 것과 같습니다.

  • git branch developer01 (브랜치 생성)
  • git checkout developer01 (브랜치로 이동/전환)

확인하기

현재 어떤 브랜치에서 작업 중인지 확인하려면 아래 명령어를 사용하세요.

#bash
git branch

실행 결과에서 developer01 앞에 * 표시가 붙어 있고, 녹색으로 표시된다면 성공적으로 이동한 것입니다.

* developer01
  main

2.  'developer01' 브랜치에서 작업하기

이제부터 developer01 브랜치에서 자유롭게 코드를 수정하고 커밋할 수 있습니다. 이 브랜치에서의 모든 변경 사항은 main 브랜치에 전혀 영향을 주지 않습니다.

  1. 새로운 '로그인 기능' 파일 생성
    #bash
    # login.js 파일 생성
    echo "function login() { console.log('Login feature in progress...'); }" > login.js
  2. 작업 내용 커밋하기 이제 새로운 파일을 Git의 관리 대상으로 추가하고, 버전으로 기록(커밋)합니다.
    #bash
    # 변경된 모든 파일을 스테이징
    git add .
    
    # 작업 내용을 설명하는 메시지와 함께 커밋
    git commit -m "Feat: Add initial structure for login feature"

💡 'main' 브랜치와 분리되어 있는지 확인해볼까요?

  • developer01 브랜치의 로그 확인: git log --oneline을 실행하면 방금 만든 "Feat: Add initial structure..." 커밋이 보입니다.
  • main 브랜치로 이동: git checkout main
  • main 브랜치의 로그 확인: 다시 git log --oneline을 실행해보세요. developer01 브랜치에서 만든 커밋은 보이지 않습니다! 파일 탐색기에서도 login.js 파일이 사라진 것을 확인할 수 있습니다.

이처럼 브랜치는 작업을 완벽하게 분리해줍니다. 다시 git checkout developer01 명령어로 작업 브랜치로 돌아오세요.


3.  원격 저장소(GitHub)에 브랜치 공유하기

로컬에서 만든 developer01 브랜치는 아직 내 컴퓨터에만 존재합니다. 다른 팀원과 코드를 공유하거나, Pull Request(PR)를 통해 코드 리뷰를 받으려면 이 브랜치를 원격 저장소(GitHub)에도 올려야 합니다.

#bash
# 로컬의 developer01 브랜치를 원격 저장소(origin)에 push합니다.
git push -u origin developer01
  • -u (또는 --set-upstream) 옵션은 최초에 한 번만 사용합니다. 로컬의 developer01 브랜치와 원격의 developer01 브랜치를 '짝꿍'으로 연결해주는 역할을 합니다.
  • 이제부터 이 브랜치에서 작업한 내용은 간단히 git push만 입력해도 원격 developer01 브랜치로 올라갑니다.

이제 GitHub 저장소 페이지에 가보면, main 브랜치 옆에 developer01 브랜치가 새로 생긴 것을 확인할 수 있습니다.


4.  작업 완료 후 'main' 브랜치에 통합하기 (Merge)

'로그인 기능' 개발이 모두 완료되었다고 가정합시다. 이제 이 결과물을 main 브랜치에 합쳐야 합니다.

  1. 통합의 기준이 될 main 브랜치로 이동합니다.
    #bash
    git checkout main
  2. (매우 중요) main 브랜치를 최신 상태로 업데이트합니다. 다른 팀원이 그동안 main 브랜치에 새로운 코드를 반영했을 수 있습니다. 충돌을 방지하기 위해 항상 원격 저장소의 최신 코드를 먼저 받아옵니다.
    #bash
    git pull origin main
  3. developer01 브랜치의 내용을 main으로 병합(Merge)합니다.이 명령어를 실행하면 developer01 브랜치에서 작업했던 모든 커밋 내역이 main 브랜치로 합쳐집니다. 이제 main 브랜치에도 login.js 파일이 존재하게 됩니다.
    #bash
    git merge developer01
  4. 통합된 main 브랜치를 원격 저장소에 Push합니다.이제 다른 팀원들도 git pull origin main을 통해 '로그인 기능'이 추가된 최신 코드를 받아볼 수 있습니다.
    #bash
    git push origin main

5.  브랜치 정리하기 (선택사항이지만 권장)

main 브랜치에 성공적으로 통합되었으므로, developer01 브랜치는 이제 제 역할을 다 했습니다. 저장소를 깔끔하게 유지하기 위해 사용이 끝난 브랜치는 삭제하는 것이 좋습니다. 프로젝트가 종료되지 않았고 계속해서 개발자가 developer01 브랜치를 사용하는 경우라면 굳이 삭제할 이유는 없ㅅ브니다.

로컬 브랜치 삭제

#bash
git branch -d developer01
  • -d 옵션은 병합이 완료된 브랜치만 안전하게 삭제합니다. 만약 아직 병합하지 않은 내용이 남아있다면 삭제되지 않습니다.
  • 강제로 삭제하려면 -D 옵션을 사용합니다.

원격(GitHub) 브랜치 삭제

#bash
git push origin --delete developer01

이제 로컬과 원격 저장소 모두에서 developer01 브랜치가 깔끔하게 정리되었습니다.

 

마무리 . 'developer01' 브랜치의 생명주기

  1. git checkout -b developer01: 나만의 작업 공간 생성
  2. (코드 수정) > git add . > git commit -m "...": 작업 내용 기록
  3. git push -u origin developer01: 작업 내용을 팀과 공유
  4. (모든 기능 개발 완료)
  5. git checkout main: 메인 브랜치로 복귀
  6. git pull origin main: 메인 브랜치 최신화
  7. git merge developer01: 내 작업물을 메인에 통합
  8. git push origin main: 통합된 최종본을 팀과 공유
  9. git branch -d developer01 & git push origin --delete developer01: 역할이 끝난 브랜치 정리

이 워크플로우를 통해 developer01, developer02, feature/payment 등 여러 브랜치에서 동시에 안전하게 작업을 진행할 수 있습니다. 이것이 바로 Git 브랜치 전략의 핵심입니다!