TT Lab
블로그

한국어

시작하기
블로그

블로그

Could you squash your commits?: 커밋을 합쳐 달라는 요청에 답하기

오늘의 영어 표현 21/30 · 단계: 리뷰 받기·답하기. 예문은 모두 이 글을 위해 지어낸 것입니다. 실제 저장소의 댓글을 옮긴 것이 아니며, 커밋 메시지는 예시입니다.

목차

한눈에 보기

표현 Could you squash your commits? / Squashed into one commit.
뜻 커밋들을 합쳐 주시겠어요? / 커밋 하나로 합쳤습니다.
쓰는 자리 리뷰 마무리 단계의 요청과 답
공손함 중립. 절차에 관한 요청입니다

1. 뜻과 뉘앙스

squash 는 「눌러 찌그러뜨리다」라는 뜻이고, Git 에서는 여러 커밋을 하나로 합치는 것을 말합니다. git rebase -i 에서 squash 나 fixup 을 고르거나, git commit --fixup 과 git rebase --autosquash 를 함께 써서 합칩니다.

왜 합쳐 달라고 할까요? 리뷰를 거치면 「fix typo」, 「address review comments」, 「wip」 같은 커밋이 쌓입니다. 이런 커밋은 리뷰할 때는 유용하지만, 병합된 뒤에는 이력을 읽기 어렵게 만듭니다. KubeVirt 의 리뷰어 가이드는 커밋 하나하나가 의미가 있어야 한다고 하고, 「Fix reviewer comments」, 「wip」, 「addition」 같은 커밋은 합쳐 달라고 요청하라고 안내합니다.

언제 합칠지도 중요합니다. Kubernetes 기여 가이드는 리뷰 중에는 수정 사항을 새 커밋으로 올리고 아직 스쿼시하지 말라고 합니다. 리뷰어가 수정분만 따로 볼 수 있어야 하기 때문입니다. 스쿼시는 요청을 받았을 때, 보통 LGTM 을 받을 즈음에 합니다. 이 가이드는 수정 커밋은 합치고, 하나의 목표를 향하지만 서로 독립적인 변경은 합치지 않는다는 기준도 제시합니다. 또 Prow 를 쓰는 저장소에서는 tide/merge-method-squash 라벨을 달아 병합할 때 봇이 커밋을 합치게 할 수 있고, 이렇게 하면 손으로 합칠 때와 달리 lgtm 라벨이 사라지거나 CI 를 다시 돌릴 필요가 없다고 설명합니다.

스쿼시를 하면 커밋 해시가 바뀌므로 강제 푸시가 필요합니다. 12편에서 본 git push --force-with-lease 를 씁니다.

2. 예문

상황 1: 메인테이너의 요청

This looks good to merge. Could you squash the fixup commits into the main one before we merge?

상황 2: 작성자의 답

Done. Squashed into two commits: one for the API change and one for the generated files.

생성된 파일(generated files)을 별도 커밋으로 두는 것은 리뷰어가 사람이 쓴 변경만 보기 쉽게 하기 위한 흔한 관례입니다. 저장소 규칙을 따릅니다.

상황 3: 작성자가 먼저 물을 때

Should I squash the commits now, or would you prefer to keep them separate until the review is done?

리뷰어마다 선호가 다르므로 물어보는 것이 가장 안전합니다.

3. 비슷한 표현과 차이

4. 한국인이 자주 하는 실수

5. 한 줄 연습

작성자 입장에서 다음 내용을 댓글로 쓰십시오.

리뷰 수정 커밋들을 합쳐서 커밋 하나로 만들었습니다. 강제 푸시했습니다.

모범 답안

I've squashed the review fixes into a single commit and force-pushed.

force-push 는 동사로 쓸 때도 하이픈을 넣는 경우가 많습니다. 강제 푸시했다고 알려 주면 리뷰어가 화면이 바뀐 이유를 바로 압니다.

티티 한마디. 리뷰 중에는 커밋을 쌓고, 끝날 때 합칩니다. 순서를 지키면 리뷰어도 이력도 편합니다.

참고

로그인하면 좋아요를 누를 수 있습니다

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다