현재 branch에 Merge 후, PR

  • 장점

    • 현재 branch에 최신 main branch가 반영되므로 PR 충돌 가능성이 줄어들고, 개인이 충돌을 해결한 뒤 PR 생성이 가능.
    • 별도의 병합 관리자가 없거나 소규모 프로젝트에서 유용.
    • 각자의 개별 commit이 타임라인대로 병합되어 전체 작업 히스토리 확인이 용이.
  • 단점

    • main branch에 문제가 있을 경우, 병합을 통해 현재 branch도 오염 가능.
    • 병합 과정에서 덮어쓴 정보나 충돌 해결 과정에 대한 추적이 어려움.
    • 병합 커밋 자체는 revert가 간단하지만, 특정 부분만 되돌리는 작업이 복잡해질 수 있음.

현재 branch에 Rebase 후, PR

  • 장점

    • 현재 branch에 최신 main branch가 반영되므로 PR 충돌 가능성이 줄어들고, 개인이 충돌을 해결한 뒤 PR 생성이 가능.
    • 별도의 병합 관리자가 있을 때, 유용.
    • 각자의 개별 commit이 선형으로 연결되어 병합 관리자가 리뷰하기 용이.
  • 단점

    • 히스토리가 재작성되기 때문에, 공유 브랜치에서 사용 금지.
    • 병합 과정에서 덮어쓴 정보나 충돌 해결 과정에 대한 기록이 히스토리에 남지 않아 추적이 어려움.
    • 병합 커밋이 생성되지 않으므로, 전체 병합 작업을 되돌리기보다는 특정 커밋 단위로 revert가 용이.

전체적인 사용루틴

  • 병합 관리자가 main 브랜치를 오염없이 관리 해 줄 수 있을 떄,
    • rebase를 통해 개인 PR 히스토리를 깔금하게 선형으로 전달
  • 병합 관리가 없어 main 브랜치 오염이 걱정 될 때,
    • merge먼저 해서 오염 대비 및 rebasePR 히스토리 정리해서 전달
  • 타임 라인 히스토리가 중요할 때,
    • merge로 최신 반영 후, PR 전달

'프레임워크 > Git' 카테고리의 다른 글

이전 시점으로 되돌리기  (0) 2025.03.22
GPG key 등록  (0) 2025.03.22

+ Recent posts

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });