결론부터 말하면 되긴 된다. 조건부로.
이미 누가 해당 브랜치를 받아 작업을 진행했다면 깃이 (심각하게) 꼬일 수 있다.
근데 왠만한 경우 머지 되기 전에 해당 브랜치에 이어 작업하는 경우는 없으므로 괜찮지않을까?
사이드 프로젝트를 코틀린 + 스프링 조합으로 진행하던 도중, 마침
line에서 만든 코틀린 jpa 라이브러리인 Jdsl을 알게 되어 접목해보았다.
(링크 : https://github.com/line/kotlin-jdsl)
사용해보다가 운 좋게 컨트리뷰트 해 볼 만한 것이 생겼고, 희희낙락하며 pr을 날렸는데 dog고수분들의 무수한 악수변경 요청을 받았다.
몇 일동안 열심히 작업 진행 후 드디어 approve를 받아 github action이 돌았는데, commit lint가 뺀찌를 놨다.
이..이게 뭐꼬..
물론 commit message에도 컨벤션이 있다는 건 알았지만, 이게 린트까지 있는 지는 처음 알았고 굉장히 당황했다. (이것도 린트가 있네..)
'이미 PR은 open 되었고, 리뷰도 상당히 진행 되었는데 어카지'
'이미 리뷰 진행된 pr에 commit message를 변경하면 꼬이는 거 아닌가?'
'아 그냥 새로 브랜치 파서 다시 진행할까'
하는 생각들이 스쳐 지나갔다.
해서 직접 레포지토리를 파서 해보기로 했다.
테스트 순서는 다음과 같다.
1. 레포를 만든다.
2. 브랜치를 딴다.
3. 무언가를 바꾸고, 푸쉬한다.
4. pr을 열고, 리뷰를 남긴다.
5. 커밋 메세지를 변경하고 force push 한다.
6. 이상 없나 확인한다.
commit-test라는 브랜치를 만들었다.
클론 받고, change-commit-message-after-pr-open 이라는 브랜치를 만들었다.
원본 | 변경본 |
---|---|
read me를 열고 내용을 변경한다.
브랜치 등록
커밋 메세지 작성 후 push
pr 열기
test: commit message
라는 커밋 메세지가 잘 등록되어 있다.
리뷰를 남겼다.
git commit --amend
라는 명령어를 통해 가장 최근의 커밋 메세지를 변경할 수 있다.
원본 | 변경본 |
---|---|
commit message를 변경하고 저장한다.
force push
커밋이 새로 생기거나 하진 않고 기존 것이 변경되었다.
변경이 잘 되었다.
갓허브님께서 머지를 허락하셨다.
흐뭇