본문 바로가기
Dev/+@

Git 커밋 이력 변경하기 (작성자, 날짜 수정하기)

by vellahw 2025. 12. 19.

 

 

 

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

댓글