ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Git 입문편] 8. rebase
    Git 2021. 3. 8. 23:23

    <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
    • 실습
      • 상황: 커밋 하나를 한 뒤, 오타가 있어서 추가 커밋을 함. 그리고 추가 작업까지 한 상태

    'Git' 카테고리의 다른 글

    [Git 입문편] 10. cherry-pick, tag  (0) 2021.03.08
    [Git 입문편] 9. reset  (0) 2021.03.08
    [Git 입문편] 7. stash, merge  (0) 2021.03.08
    [Git 입문편] 6. push, pull & fetch  (0) 2021.03.07
    [Git 입문편] 5. branch, checkout  (0) 2021.03.07

    댓글

Designed by Tistory.