전체 목록
GitMedium#277

commit --amend와 fixup 커밋은 언제 사용하나요?

#Git#amend#fixup#rebase

답변 포인트

최근 커밋 수정과 리뷰 수정 정리를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

amend는 최근 커밋을 수정하고, fixup은 특정 커밋에 합쳐질 수정 커밋을 만듭니다. autosquash rebase와 함께 리뷰 수정 정리에 유용합니다.

amend는 최근 커밋을 수정하고, fixup은 특정 커밋에 합쳐질 수정 커밋을 만듭니다. autosquash rebase와 함께 리뷰 수정 정리에 유용합니다.

핵심 개념

핵심 기준은 최근 커밋 수정과 리뷰 수정 정리입니다.

commit --amend는 가장 최근 커밋의 내용이나 메시지를 바꿉니다. --fixup은 특정 과거 커밋에 합쳐질 의도를 가진 수정 커밋을 만들고, rebase --autosquash로 자동 정리합니다. 둘 다 히스토리 재작성과 연결됩니다.

동작 흐름

  1. 현재 브랜치의 상태와 변경 범위를 먼저 확인합니다.
  2. 명령이 히스토리, 브랜치 포인터, 작업 디렉터리 중 무엇을 바꾸는지 구분합니다.
  3. 공유 브랜치에 영향을 주는 작업인지 확인합니다.
  4. 실행 후 git statusgit log --oneline --graph로 결과를 검증합니다.

실제 예시

Bash
git add missing-file.ts
git commit --amend --no-edit

git commit --fixup a1b2c3d
git rebase -i --autosquash origin/main

예시는 핵심 흐름을 단순화한 것입니다. 실무에서는 팀의 배포 방식, 데이터 크기, 장애 영향도, 유지보수 비용까지 함께 고려해야 합니다.

실무에서 주의할 점

  • 공유된 히스토리를 재작성하면 동료의 로컬 작업과 충돌할 수 있습니다.
  • 충돌 해결은 한쪽 선택이 아니라 양쪽 변경 의도를 통합하는 과정입니다.
  • 위험한 작업 전에는 임시 브랜치나 태그로 복구 지점을 남기면 안전합니다.

함께 연결해서 보면 좋은 키워드

Git, amend, fixup, autosquash

정리

한 줄로 정리하면, amend는 최근 커밋을 수정하고, fixup은 특정 커밋에 합쳐질 수정 커밋을 만듭니다. autosquash rebase와 함께 리뷰 수정 정리에 유용합니다. 개념의 정의뿐 아니라 적용 조건과 실패했을 때의 증상까지 함께 이해하는 것이 중요합니다.

관련 질문

같은 카테고리/태그 기준