TIL-220104

EBinY·2022년 1월 4일
0

TIL - Today I Learned

목록 보기
40/54

Git Branch

  • 브랜치(Branch): 하나의 작업을 여럿이 같이 개발할 때, 각 사람이 코드를 통째로 복사한 후 원본이 변경될 우려 없이 독립적으로 개발할수 있게 해주는 개념
  • 브랜치의 장점
    • 한 소스코드에서 동시에 다양한 작업을 진행함
    • 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행함
    • 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고, 독립적으로 코딩을 진행함
  • master(또는 main)이라는 이름을 가진 통합 브랜치에 뿌리를 두고, hotfix, release, develop, feature 등 다양한 브랜치를 만들고 작업을 하면, 각각의 브랜치의 작업이 갈라져 나와 아래와 같은 Git graph가 만들어진다
  • 이렇게 나누어진 브랜치에서는 각자 독립적인 작업 영역(저장소) 안에서 소스코드를 변경하고, 변경된 내용들은 다른 브랜치와 병합(merge)함으로써 다시 새로운 하나의 브랜치로 모을 수 있음
  • 통합 브랜치에서 먼저 자신의 작업 전용 브랜치를 만들고, 각자의 브랜치에서 맡은 영역에 대한 작업을 진행한 후, 작업이 끝난 브랜치는 통합 브랜치에 병합하여 변경 사항을 적용함
  • 다른 브랜치의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행한 뒤 그 결과를 하나로 모으게 됨, 차후 문제가 발생했을 때 원인이 되는 작업을 찾아내거나 대책을 세우기 쉬워짐
  • 브랜치 종류
    • 통합 브랜치(Intergration Branch)
      • 배포될 소스 코드가 기록되는 브랜치
      • Github Repository를 생성하게 되면, 기본적으로 main 브랜치가 생성됨
      • 해당 프로젝트의 모든 기능이 정상적으로 작동하는 상태의 소스코드를 담는 곳
    • 피처 브랜치(Feature Branch)
      • 기능 추가, 버그 수정과 같이 단위 작업을 위한 브랜치
      • 통합 브랜치로부터 만들어내며, 피처에서 하나의 작업이 완료되면 다시 통합으로 병합하는 방식으로 진행함, 토픽 브랜치라고도 함

브랜치 명령어

  • 새로운 브랜치 생성
    • $ git branch 새로운 브랜치 이름
  • 새로운 브랜치 생성 후 해당 브랜치로 전환
    • $ git switch -c 새로운 브랜치 이름
    • $ git checkout -b 새로운 브랜치 이름
  • 브랜치 목록 확인
    • $ git branch
  • 브랜치 목록과 각 브랜치의 최근 커밋 확인
    • $ git branch -v
  • 브랜치 삭제
    • $ git branch -d 삭제할 브랜치 이름
    • $ git branch -D 해당 명령어는 병합하지 않은 브랜치를 강제 삭제하는 방법
  • 브랜치 전환
    • $ git switch 브랜치 이름
    • $ git checkout 브랜치 이름
  • 브랜치 병합 (master 브랜치로 dev 브랜치를 병합할 때 (master ← dev))
    • $ git checkout master
    • $ git merge dev
  • 로그에 모든 브랜치를 그래프로 표현
    • $ git log --branches --graph --decorate
  • 아직 commit 하지 않은 작업을 스택에 임시로 저장
    • $ git stash

브랜치 설명 정리

  • master/main: 항상 최신의 안정적인 프로그램
  • dev: 베타 버전, 모든 개발 로그가 쌓이는 곳, 새로운 feature 기능들이 완성되고 머지되는 곳
  • feature: 기능을 추가할 때 마다, 새로 따는 브랜치
  • hotfix: 급한 수정을 할때에 새로 따는 브랜치
  • release: 배포할 때 쓰는 테스트용 브랜치

0개의 댓글