git branch , git flow

광로·2024년 3월 3일
  1. Git 에서 branch merfe 방법들과 각 방법의 특징

[1] Merge

-> 두 branch의 히스토리를 유지하면서 합치는 방법. 이 작업을 수행하면, 두 branch의 모든 변경사항을 포함 하여 새로운 'commit'을 생성한다.
주로 branch의 히스토리를 그래도 유지 하고자 할 때 유용

  • 장점 : branch의 히스토리가 보존, 어떤 작업이 이루어 지는지 추적이 용이
  • 단점 : 히스토리가 많아 짐에 따라 파악 하기가 다소 어려움

[2] Rebase

-> 하나의 branch를 다른 branch의 최신 커밋 위에 're-apply' 하는 방법.
과장에서 branch의 히스토리가 선형적으로 정리 됩니다.

  • 장점 : 히스토리가 깔끔하고 이해하기 쉬움, 병합 충돌을 미리 해결 할 수 있어,
    mergr할 때 충돌이 적게 발생 합니다.
  • 단점 : 협업 할 때 다른 개발자들이 사용하던 히스토리와 달라 혼란이 발생.
    개인적으로 작업하는 branch에 주오 사용

[3] Squash

-> 여러개의 커밋을 하나의 커밋으로 합치는 과정, 특히 pull request를 처리 할 때 유용
'squash' 를 사용 하면, feature branch의 모습 변경 사항이 단일 커밋으로 master 또는
main branch에 병합 된다.

  • 장점 : 깔끔하고 단순한 히스토리 상태 유지, 여러 작업을 하나의 커밋으로 요약 병합
  • 단점 : 개별 커밋의 세부 사항과 히스토리가 손실 될 수 있음
  1. git flow 브랜치 전략에 대해 설명

-> git flow는 Vincent Driessen이 제안한 Git을 사용하는 프로젝트 에서의 브랜치 관리 전략, 여러 종류의 브랜치를 활용하여 개발 프로세스를 체계적으로 관리

  • 주요 브랜치

1) master/main : 프로덕션 준비 상태의 코드 유지.

2) develop : 다음 출시 버전을 위한 개발 작업이 이루어지는 브랜치, 기능 개발이 완료 되면
이 브랜치로 merge된다.

  • 지원 브랜치

1) feature branches : 새로운 기능 개발이나 버그 수정과 같은 작업을 위해 생성, 각 기능 수정 사항을 개발하는 독립된 공간을 제공.

2) release branches : 다가오는 출시를 준비하는 브랜치, 'develop' 브랜치에서 분기되어, 출시전 마지막 버그 수정이나 무서 작업 등이 이루어지는 곳
(준비가 완료 되면 , 'master/main'과 'develop' 양쪽에 merge

3) hotfix branches : 프로덕션에서 발견된 긴급한 버그를 수정하기 위해 'master/main'에서 분기되어 생성. 수정이 완료되면 'master/main'과 'develop'브랜치 양 쪽에 merge 된다.

  • Git flow전략은 복잡한 프로젝트에서 명확한 구조와 과정을 제공, 여러 개발자가 함꼐 작업 할 때 발생할 수 있는 혼란을 최소화 하도록 유도
profile
많이 느리지만, 포기하지 않는 개발자 (돌에 새기는 느낌 )

0개의 댓글