Git을 사용하다 보면 커밋 메시지를 잘못 작성했거나 민감한 정보가 커밋에 포함된 경우처럼 커밋 이력을 수정해야 하는 상황이 생긴다.
나는 내 개인 레포지토리에 회사 계정으로 커밋을 해버렸다. Contributors에도 회사 계정이!..
회사PC를 사용하면서 유저를 변경하지 않고 신나게 커밋해버린 실수..
이 글에서는 여러개의 커밋 이력을 변경하는 방법을 정리했다.
⚠️ 주의: 나는 나 혼자 쓰는 개인 레포였지만, 공유 브랜치에서 작업할 경우 팀원들에게 큰 영향을 줄 수 있으므로 반드시 주의할 것!

참고) VSCode 기준 Git Bash 터미널에서 진행했다.
1. 유저 변경
git config --global user.name 유저이름
git config --global user.email 유저이메일
우선 위 명령어를 차례로 입력해 유저 정보를 변경한다.
(--global 옵션은 전역 설정이기 때문에 해당 레포지토리 한정으로 유저를 변경할 거라면 --global 생략 가능)
git config user.name
git config user.email
잘 변경되었는지는 위 명령어들로 확인하면 된다
2. 로그 확인 후 리베이스
git log 명령어로 히스토리를 확인해주고
git rebase -i --root
위 명령어로 리베이스를 실행한다.
나는 첫번째 커밋부터 전부 다 변경해야 되는 상황이었어서 --root 옵션을 사용했다.
--root 자리에 HEAD~n 이런식으로 작성하면 가장 최근 커밋부터 n개의 커밋을 선택할 수 있다.

명령어를 입력하면 위처럼 로그를 확인할 수 있는데
e 라고 써진 부분은 원래 pick 이 써져있다.
i 를 입력하여 작성 모드로 들어간 후,
수정이 필요한 커밋 내역들을 사진처럼 pick 을 e 혹은 edit 으로 수정해준다.
그후 esc → :wq 를 입력하여 모드를 빠져나온다

그럼 사진처럼 commit 을 할건지 rebase를 할건지 선택하라고 하는데
우리는 작성자(+날짜)를 변경해줘야 하기 때문에
git rebase --continue
명령어를 입력해 다시 리베이스를 실행한다.

그럼 사진과 같이 한 개의 커밋 이력이 보일 것이다.
3. 작성자 변경하기
git commit --amend --author="Author Name<author@email>"
위 명령어를 입력해 작성자를 수정해준다.위 명령어를 입력하면 아까 pick을 e로 바꿔주었던 창이 또 뜨는데, 거기서 커밋메세지를 수정할 수도 있다.
수정할게없으면 --amend 뒤에 --no-edit 옵션을 붙이면 된다.
git commit --amend --no-edit --author="Author Name<author@email>"
3-1. 날짜 변경하기
작성자만 변경하면 된다면 4번으로 넘어가 push 해주면 된다.
하지만 나는 커밋 수정을 한 번 잘못 하는 바람에 날짜 수정을 추가로 진행했다.
GIT_COMMITTER_DATE="Tue Dec 9 11:09:48 2025 +0900" git commit --amend --no-edit --date "Tue Dec 9 11:09:48 2025 +0900"
GIT_COMMITTER_DATE 변수를 만들어 날짜를 수정해준다.
쌍따옴표 안에 요일 월 등 Git 형식에 맞춰 날짜 값을 입력해주면 된다.
작성자 수정할 때와 마찬가지로 --no-edit 옵션 유무는 선택하면 된다.
🎊 커밋 반영

위 git rabase 부터 --amend 수정 과정을 반복하면 사진처럼 Successfully~ 문구가 나온다.
그럼 이제 모든 커밋의 수정이 완료된 것! push 만 해주면 끝난다.
git push --force
⚠️ 주의: 개인 레포가 아닌 공유 브랜치에서 force push 하지 않도록 주의해야한다
참고

'Dev > +@' 카테고리의 다른 글
| 사용자 관점의 UI 구성하기 (0) | 2023.09.05 |
|---|---|
| HTML, CSS로 토글 버튼 만들기 (0) | 2023.06.09 |
| 솔리디티 string memory (데이터 저장 영역) (0) | 2023.06.01 |
댓글