Git은 히스토리를 rewrite할 수 있게 합니다 — commit을 amend, rebase, squash하거나 제거하여 — commit을 정리하거나 문제를 해결하기 위해. 강력하지만 신중하게 해야 합니다. 공유된 히스토리를 rewrite하면 심각한 문제를 일으키므로, 그에 관한 규칙이 매우 중요합니다.
히스토리를 rewrite하는 방법
git commit --amend → 가장 최근 commit 수정(메시지 또는 내용)
git rebase -i → commit squash, reword, 재정렬, 편집, 삭제(대화형)
git rebase <branch> → commit을 다른 base 위로 재생(선형 히스토리)
git reset → branch 포인터 이동(버리기/uncommit)
git filter-repo → 많은 commit rewrite(모든 히스토리에서 파일/비밀 제거)
→ 이 모든 것이 commit 해시를 바꿈(rewrite = 새롭고 다른 commit 생성).
