Intro
Git History와 생성된 Branches에 대한 Merge Strategy에 대한 내용을 정리해보겠습니다.
Github 상에서 Branch Merge는 어떻게 해야하나요?
Github 상에서 Brnach Merge/Delete 등의 작업은 팀별로 정한 Branch Strategy에 따라서 차등 적용하게 됩니다. 예를 들어
local에서 작업한 branch를 push하게 되면 해당 branch 명으로 github상에 새로운 branch가 되고 우리가 선택할 수 있는 것은 이 banch를 어디에 merge시켜서 작업내용을 반영할 것인가와 이 branch를 계속 보관하고 있을 것인가를 선택하게 됩니다. 이때 github flow를 branch strategy로 정했을 경우, main(배포되는 branch)에 해당 branch를 merge시키고 branch를 제거해버린 다음에 main을 다시 local에 full하고 다시 local 상에서 새로운 branch를 만들어서 관리하는 방법이 있습니다.
반면 git flow를 적용할 경우, github상에서 운용중인 main, release, develop 등의 main task를 수행하는 모든 branch의 내용을 full로 당겨서 최신화 시킨 다음, develop에서 branch를 새롭게 열고 해당 작업 내용을 github로 push 시킨담에 PR을 통해 관리자의 승인을 받으면 develop에 해당 branch를 병합시키고 여러 작업자의 작업들을 어느정도 모아서 main/release 단으로 작업 내용을 옮길 때, main에 다시 한번 Merge를 시킵니다. 이 때는 develop branch를 병합 후 제거하지 않아야 합니다. 즉, 요약해보면 내 팀이 어떤 git branch strategy를 따를지 정해지는 것에 따라서 github 상에서 Branch를 관리를 지켜야할 겁니다.
1. Merge Commit (1 : 1)
생성한 branch에서의 모든 commit 내역을 보존한 채 merge하는 방식
2. Squash and Merge ( 다 : 1)
생성한 branch에서의 commit 내역을 하나로 합쳐서 merge하는 방식, 자세한 내역을 못본다는게 단점 같지만 어차피 commit했던 부분들이 PR 내 링크된 commit 내역을 확인해볼 수 있어서 큰 담점도 아니라고 한다.
3. Rebase and Merge( 일체화 )
Branch를 생성해서 작업하지만 사실상 그냥 Master에서 작업한 것과 동치로 보고 작업한다. 지금 당장은 이걸 어디다가 써야할 지 모르겠는데 Readme.md 같은 걸 수정할 때 굳이 수정한 내용에 대해서 branch를 삭제/생성한 기록을 남기고 싶지 않을 때 등에 사용할 수 있을 것 같다.
Reference

인스타 주소 🎗
'Programming > git & github & convention' 카테고리의 다른 글
Git History 관리 및 Merge Strategy(이론) (1) | 2024.11.09 |
---|---|
Branch Strategy - Git flow(이론 및 실습) (1) | 2024.11.09 |
Branch Strategy - Github flow(이론 및 실습) (0) | 2024.11.09 |
Github Convention(실습) (2) | 2024.11.09 |
Github convention과 Branch Strategy(이론) (0) | 2024.11.09 |