Git

[Git 입문편] 8. rebase

미래의 개발왕 2021. 3. 8. 23:23
728x90
반응형

<git rebase>

본 포스팅은 저의 인터넷 강의인 실무자가 알려주는 Git - 입문편의 강의안을 바탕으로 작성하였습니다.

 

rebase

1. 다른 브랜치와 병합 (3.6 Git 브랜치 - Rebase 하기)

  • 기능은 merge와 같음 (코드를 합침)
  • 내 브랜치의 커밋을 대상 브랜치의 위(다음)으로 생성함
  • 깔끔한 로그를 유지할 수 있음
  • 실습
    • 상황: master의 변경들을 feature/c에서 rebase 해본다
      • 대상 브랜치의 커밋만 진행 (fast-forward)
      • 두 브랜치 모두 커밋이 있지만 충돌이 나지 않음 (auto merging)
      • 두 브랜치 모두 커밋이 있고 충돌이 남 (conflict)

 


2. 커밋 여러개 수정하기

  • 주의
    • push해서 누군가 사용하고 있는 커밋을 rebase 하면 안됨 (헬게이트가 열림)
    • 해당 커밋을 기반으로 작업을 했을 텐데 그 기반을 바꿔 버리는 것
    • push를 했더라도 아직 merge되지 않았고 다른 사람이 사용하지 않는 브랜치라면 (보통 feature 브랜치) 마음대로 rebase를 해도 무방
  • -i: 대화형 모드
  • 가장 위에 있는 커밋이 오래된 것 (git st와 반대)
  • 옵션
    • --abort : rebase를 중단. 원래 상태로 돌아감
    • --continue : rebase를 계속 진행. 다음 단계로 넘어감
    • --skip : 대상 브랜치의 내용으로 적용
  • 커밋 목록에서의 옵션
    • p, pick = use commit
    • r, reword = use commit, but edit the commit message
    • e, edit = use commit, but stop for amending
    • s, squash = use commit, but meld into previous commit
    • f, fixup = like "squash", but discard this commit's log message
    • x, exec = run command (the rest of the line) using shell
  • 실습
    • 상황: 커밋 하나를 한 뒤, 오타가 있어서 추가 커밋을 함. 그리고 추가 작업까지 한 상태
반응형