반응형
Pull Request(PR)를 할 때
의도하지 않은 커밋이나 다른 주제의 커밋 이력이 함께 들어간 경우,
상황에 따라 정리하는 것이 좋다.
1. 커밋 이력이 섞여 있으면 문제가 되는 이유
- 리뷰어가 의도를 파악하기 어려워짐
- 기능별 변경 사항 추적이 어려움
- 히스토리 관리가 지저분해짐
- 다른 이슈에 대한 코드가 PR에 포함되어 충돌 발생 위험 ↑
2. 커밋 이력이 섞여 있을 때 해결 방법
① 커밋 분리 (인터랙티브 리베이스)
git rebase -i HEAD~n # 최근 n개의 커밋을 인터랙티브하게 수정
- pick → drop 또는 edit으로 불필요한 커밋을 제거하거나 수정
- 정리 후 강제 푸시
git push origin 브랜치명 --force
② 새로운 브랜치에서 필요한 커밋만 cherry-pick
git checkout -b clean-feature git cherry-pick 커밋ID1 커밋ID2 ...
- 필요한 커밋만 선택하여 새 브랜치로 정리
- 해당 브랜치로 PR 생성
③ 다시 PR 생성 (작업을 새로 정리)
- 복잡하게 꼬였거나 정리가 어려울 경우:
git checkout -b new-feature main # 필요한 변경만 반영 git push origin new-feature
- 기존 PR은 닫고, 새 PR로 올리기
3. 커밋 정리를 해야할 때는?
상황 | 정리 권장 여부 |
개인 프로젝트 | 선택 사항 (연습해볼 기회) |
협업 중인 팀 | 정리 필수 ✅ |
오픈소스 기여 | 정리 필수 ✅ |
커밋 수가 매우 많고 뒤섞임 | 새 브랜치에서 cherry-pick 추천 |
결론
다른 주제의 커밋이 섞였다면, 정리해서 PR을 올리는 것이 깔끔하고 바람직하다.
특히 리뷰하는 입장에서 기능 하나에 집중된 커밋/PR을 받는 게 훨씬 이해와 병합이 쉽다.
반응형
'개발도구 > Git Github' 카테고리의 다른 글
커밋 전략: 어느 단위로 커밋해야 할까? (0) | 2025.04.04 |
---|---|
[Github] 깃헙 업적뱃지(Achievements) 획득방법 (0) | 2025.04.04 |
.gitignore 파일 작성하기 (0) | 2025.03.25 |
github 화살표 폴더 해결방법(서브모듈 해제) (0) | 2025.03.05 |
git과 github (0) | 2025.02.18 |