본문 바로가기
git

[Git] 커밋 메시지 합치기

by 김홍중 2021. 5. 13.

Pull request를 하고 커밋 메시지가 많은 경우 merge하기전에 합치는데

가끔 잊는 부분이 있어서 반복된 실수를 잡고자 정리합니다.

 

만약 3개의 커밋 메시지를 합친다고 한다면, 다음을 입력합니다.

git rebase -i HEAD~3

 

그러면 다음과 같이 나올것입니다.

pick 242cwe2 commit1
pick sdf21as commit2
pick 8335sd3 commit3

 

commit1에 commit2와 commit3을 합칩니다.

그러기 위해서 squash를 의미하는 s를 다음과 같이 작성하고 저장(:wq)합니다.

pick 242cwe2 commit1
s sdf21as commit2
s 8335sd3 commit3

 

이후에 다음과 같이 뜨는데 커밋을 하나로 다시 작성할 수 있습니다.

# This is a combination of 3 commits.
# This is the 1st commit message:

commit1

첫번째 커밋입니다.

# This is the commit message #2:

commit2

두번째 커밋입니다.

# This is the commit message #3:

commit3

세번째 커밋입니다.

 

하나의 커밋을 작성합니다.

# This is a combination of 3 commits.
# This is the 1st commit message:

commit1

첫번째 커밋만 남깁니다.

 

이를 push하려고 하고하면 아래와 같이 error가 날 것입니다.

git push origin 브랜치명
$ git push origin 브랜치명
To https://github.com/username/repositoryname
 ! [rejected]        브랜치명 -> 브랜치명 (non-fast-forward)
error: failed to push some refs to 'https://github.com/username/repositoryname'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

 

강제적으로 push하는것을 주의하는 편이지만 원격저장소와 커밋 상태가 달라서 뜨는 오류이므로 어쩔 수 없이 강제로 push합니다.

git push -f origin 브랜치명

 

 

 

댓글