[Git] 3way merge, rebase, reset,revert

강인호·2022년 10월 17일
0

개인저장

목록 보기
39/87

3way merge란

기존 개인 브랜치에서 공용 브런치로의 merge 전략에서 두 브랜치 간의 마지막 커밋과 공통 조상의 3개의 커밋을 이용해서 새로운 커밋을 만들어 충돌병합을 잡는 방법이다.

나도 지금까지 작업 하면서 각각 개인 브랜치로 나누고 총 배포를 하는 main 혹은 master 브랜치가 있고 그 중간 단계에 Dev 브랜치를 놓고 Dev브랜치로 merge하면서 작업을 수행했는데, 이런 방법이 있는지는 몰랐다.

일단 글을 자세히 뜯어보면

변경되는 두개의 커밋이 있고 공통 조상 커밋과 대조해서 각각 어떤 부분이 변경되었는지 확인하는 방법이다.

머지된 브랜치가 삭제되더라도 히스토리 브랜치 상에 표시가 남아있어서 진행 내역을 알 수 있다.

대신 브랜치의 수가 많아질 경우 그래프 가독성이 떨어짐

rebase

참고링크

두 개의 공통 Base를 가진 Branch에서 한 Branch의 Base를 다른 Branch의 최신 커밋으로 branch의 base를 옮기는 작업입니다. 용어 그대로 베이스를 다시 설정하는 작업

  • 공유 브랜치의 변경사항을 즉각 반영할 수 있다.

  • 커밋 이력을 남기지 않아 history가 깔끔해진다.

  • 각각의 커밋마다의 충돌을 잡아야 한다.(단점이자 장점)

    reset, revert

    둘 다 이전 커밋으로 되돌아가는 기능이지만

    reset은 현재의 커밋을 남기지 않고 원하는 시점의 과거로 돌아가지만

    revert는 현재의 커밋을 남기고 새로운 커밋을 만들면서 과거로 돌아간다.

0개의 댓글