[git] 깃 명령어 : git rebase 와 git merge 의 차이

SINGING BIRD·2024년 6월 3일
post-thumbnail

1. git rebase 의 특징

  • git merge 와 비슷합니다.
  • git merge 와의 차이점은 '커밋을 재정렬' 한다는 것입니다.

2. git merge 사용 시나리오

  1. feature-login 에서 로그인 페이지 기능 작업을 하고 있습니다.
    main 브랜치에서 hotfix 로 급하게 회원가입 버튼이 추가된 상황입니다.

  2. 보통은 feature-login 브랜치에서 main 브랜치를 merge 하여 최신 코드를 가져옵니다.

  3. 그리고 feature-login 에서 로그인 페이지 기능 작업을 지속하며 commit 을 만들어나갑니다.

  4. feature-login 에서 로그인 페이지 작업이 끝나면 main 브랜치로 병합해줍니다.


3. git rebase 사용 시나리오

  1. 위 상황과 같습니다. feature-login 에서 로그인 페이지 기능 작업을 하고 있는데,
    main 브랜치에서 hotfix 로 급하게 회원가입 버튼이 추가된 상황입니다.

  2. feature-login 브랜치에서 git rebase main 명령어를 실행합니다.
    merge commit 이 따로 생기지 않았고, 줄기가 하나로 합쳐졌습니다.
    ( feature-login 브랜치의 commit 인 [Feat : 로그인 비밀번호 버튼 수정], [Feat : 로그인 이메일 버튼 수정]의 commit number 도 변경되었습니다. )

  3. feature-login 에서 로그인 페이지 기능 작업을 지속하여 commit 을 만들어나갑니다.

  1. feature-login 에서 로그인 페이지 작업이 끝나면 main 브랜치로 병합해줍니다.
    ( git merge 시 기본 옵션은 fast-forward (ff) 입니다. )

4. 최종 결과 비교

  1. merge 로 중간 병합하여 작업 후 최종 병합.

  2. rebase 로 중간 병합하여 작업 후 최종 병합.


참고 자료

[GIT 좀 더 이해하기] 3. merge 와 rebase 차이
https://kghworks.tistory.com/133#google_vignette

Merge 와 Rebase의 차이점
https://brunch.co.kr/@anonymdevoo/7

profile
good things take time

0개의 댓글