우리는 세 번 커밋해서 리베이스했습니다. 하지만 이 커밋들은 작업이 비슷합니다. 이 커밋들을 커밋 하나로 묶어 봅시다.

    infoh@DESKTOP MINGW64 /e/gitstudy08 (master)

    $ git rebase -i HEAD~3 커밋 묶기

    명령어를 입력하면 메시지를 입력할 수 있는 vi 에디터가 실행됩니다. 리베이스 병합할 커밋들의 정보도 자동으로 작성됩니다.

    ▼ 그림 8-48 메시지를 입력할 수 있는 vi 에디터

    0847.jpg

    pick 48caea0 add description

    pick 93aa6eb edit submenu for menu5

    pick 690cc95 edit menu5

     

    # Rebase a7fe40b..690cc95 onto a7fe40b (3 commands)

    #

    # Commands:

    # p, pick <commit> = use commit

    # r, reword <commit> = use commit, but edit the commit message

    # e, edit <commit> = use commit, but stop for amending

    # s, squash <commit> = use commit, but meld into previous commit

    # f, fixup <commit> = like "squash", but discard this commit's log message

    # x, exec <command> = run command (the rest of the line) using shell

    # d, drop <commit> = remove commit

    # l, label <label> = label current HEAD with a name

    # t, reset <label> = reset HEAD to a label

    # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]

    # . create a merge commit using the original merge commit's

    # . message (or the oneline, if no original merge commit was

    # . specified). Use -c <commit> to reword the commit message.

    #

    # These lines can be re-ordered; they are executed from top to bottom.

    #

    # If you remove a line here THAT COMMIT WILL BE LOST.

    리베이스 메시지를 저장하면 다음 메시지를 출력한 후 커밋 3개가 커밋 하나로 변경됩니다.

    Successfully rebased and updated refs/heads/master.

    이처럼 리베이스는 여러 커밋을 커밋 하나로 합칠 수 있습니다. 이때 합친 커밋에는 새 해시 값이 부여됩니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.