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 브랜치명
'git' 카테고리의 다른 글
[git] windows에서 git for windows 사용중이어서 삭제 못할 경우 (0) | 2021.08.17 |
---|---|
[Git] 로컬에서 원격저장소의 branch와 동일하게 생성 (0) | 2021.05.22 |
[git] 브랜치 이름 변경 (0) | 2021.05.21 |
[git] merge중지 (0) | 2021.05.20 |
댓글