IT 기타

[Git] Git Branch에 대하여 알아보기

YaluStar 2023. 1. 28. 18:46

안녕하세요.

이번에는 Git의 Branch 기능에 대해서 알아보겠습니다.

 

Git

  • 소스 코드를 효율적으로 관리하기 위한 프로그램

 

Branch

  • 여러 명이 작업 시 독립적으로 작업을 하기 위해 필요한 개념

 

Branch의 종류

1. branch -master

  • 제품으로 출시될 수 있는 브랜치
  • 배포(Release) 이력을 관리하기 위해 사용
  • 배포 가능한 상태만을 관리하는 브랜치

 

2. branch -develop

  • 다음 출시 버전을 개발하는 브랜치
  • 기능 개발을 위한 브랜치들을 병합하기 위해 사용
  • 평소 개발을 진행할 떄 사용

 

3. branch -feature

  • 기능 개발을 진행하는 브랜치
  • 새로운 기능 개발 및 버그 수정을 할 때마다 'develop'에서 분기
  • 로컬에서 작업 후 develop에 merge로만 공유
  • 이름 : feature/~~

 

4. branch -release

  • 출시 버전을 준비하는 브랜치
  • 배포를 위한 전용 브랜치
  • 이름 : release-0.0

 

5. branch -hotfix

  • 출시 버전에서 발생한 버그 수정 브랜치
  • 배포한 버전에 긴급하게 수정해야 할 필요가 있는 경우 사용
  • Master에서 분기
  • 이름 : hotfix-0.0.0

 

 

 

git branch

  • 로컬 내의 branch 목록 확인
git branch

 

 

git branch 'test' (branch 이름)

  • test 이름으로 branch 생성
git branch 'test'
git branch

 

 

git checkout test (branch 이름)

  • test 이름의 branch로 이동
git checkout test

 

main에서 test로 변환된 모습을 볼 수 있습니다.

 

git push / git push origin

  • master에서는 git push를 하면 되지만 branch를 변경 후에 하는 경우에는 git push origin test 식으로 입력해야 한다. (test: 브랜치 이름)

 

main에서 push 작업했을 때

git add .
git commit -m "feat: 2022-12-02"
git push

 

 

브랜치에서 push 작업할 때

git checkout test
git add .
git commit -m "feat: 2022-12-02 test"
git push origin test

 

git branch -d test

  • test branch 삭제
  • 단 branch가 main보다 최신인 경우에는 삭제되지 않고 경고 메시지가 출력됨
  • *삭제 전에 다른 branch로 이동해야 함
git checkout main
git branch -d test

 

해당 메시지의 경우에는 ‘test’ 브랜치가 main보다 최신인 상황이므로 경고 메시지를 출력하는 것입니다.

 

git branch -d test

test 브랜치를 지울 거면 다른 브랜치로 이동한 후에 실행하라는 메시지입니다.

 

git branch -D test

  • test bracn 삭제, 경고를 무시하고 삭제됨
  • *삭제 전에 다른 branch로 이동해야 함
  • *git branch -d(D) test 명령어로 삭제해도 remote에 있는 branch는 그대로 남아 있으므로 아래 명령어를 이용해서 삭제를 해야 함
git branch -D test

 

로컬에서는 branch를 지웠지만, 원격 저장소에는 아직 남아있는 것을 확인할 수 있습니다.

밑에서 명령어를 추가로 입력하면 원격 저장소에서도 삭제할 수 있습니다.

 

git push origin --delete test

  • remote에 있는 test 브랜치를 삭제
git push origin --delete test

 

명령어 실행 후 확인하면 삭제된 것을 볼 수 있습니다.

 

git checkout -b test

  • test 브랜치를 생성하고 이동까지 함
git checkout -b test

 

Merge

(main) git merge a

  • main에 a branch 내용을 합침
git checkout main
git merge test

 

Merge의 경우 상황에 따라서 케이스가 존재하기 때문에 다음 글에서 이어서 알아보도록 하겠습니다.

 

감사합니다.

 

반응형