두 개의 commit을 합칠 때 두 가지 방법이 있다.

1. cherry-pick & dependancy

첫 번째 commit을 cherry-pick하고 그것을 base로 두 번째 commit을 cherry-pick하면,

첫 번째 commit에 두 번째 commit과 dependency가 걸리게 된다.

아래 명령어로 어떤 commit이 push될 예정인지 확인 가능하다.

그리고 push해주면 ok.

mina@MAserver:/workspace/CCC/meta-lg-webos (@drd4tv)$ git log --pretty=oneline --abbrev-commit

commit 14026b3f79f009b1036910ee388b0d9a85035a01
Author: Mina Lee <mina@abc.com>
Date:   Thu Apr 6 07:42:45 2017 +0900

    com.webos.app.{inputcommon=742,multiview=118}
   
    :Release Notes:
   
    :Detailed Notes:

    :Testing Performed:

    :QA Notes:
   
    :Issues Addressed:
   
    Change-Id: If9172c0e7481c2ff372e176474cd88cf1567c0f0

commit 941e8f17eec3e6586c087c71ff09dce0b16a1b65
Author: Mina Lee <mina@abc.com>
Date:   Fri Mar 24 07:57:30 2017 +0900

    com.webos.app.{inputcommon=742,multiview=118}
   
    :Release Notes:
   
    :Detailed Notes:

    :Testing Performed:

    :QA Notes:
   
    :Issues Addressed:

    Change-Id: I844f46d40a970dbf617278b42b264c16bc752500

2. git rebase

git rebase -i HEAD~n 명령어를 사용하여 합칠 수 있다.

난 두 개의 commit을 합칠 거라서 아래처럼 입력했다.

위와 같이 command를 입력하면 편집창이 출력된다.

이 때 아래 그림처럼 pick에서 squash로 바꿔줘야 한다.

주석에도 설명이 있듯이, 66cb7b4 commit 안으로 941e8f1을 합치는 개념이다.

(만약 commit이 세 개 이상이라면, 첫 번째 commit을 제외한 나머지는 다 squash로 바꿔주면 된다.)

저장하고 빠져나오면 새로운 편집창이 출력된다.

두 개의 메시지를 합쳐서 대표하는 메시지를 작성하면 된다.

다 작성하고 빠져나오면 정상적으로 rebase된 로그를 확인할 수 있다.