* 상황 - 이미 리모트로 업로드된 상황에서 커밋의 작성자를 수정하고 싶었다. 그래서 커밋을 수정하는 방법과 작성자 수정하는 방법에 대해 기술해보려고 한다.
* 해결
1. 해시값 확인
git log --oneline
2. commit 이력을 변경할 commit 선택
git rebase -i {해시값}
▶ 해시값에 들어갈 수 있는 값: HEAD~1, --root
1. HEAD~1: 현재 HEAD로부터 몇 번째 전인지 나타냄
2. --root: 맨 처음 commit부터 변경
3. 변경할 commit의 상태 변경
pick 11abcd3 Add fault
pick 19485ba Add fault2
원하는 해시값의 상태를 pick에서 e나 edit으로 바꿔준다. 이때 단축키는 ⑤ 를 참고한다.
4. commit의 작성자를 수정하고 싶다면
git commit --amend --author="Author Name<author@email>"
Author Name에는 수정하고 싶은 작성자 닉네임 (github 닉네임)
author@email에는 수정하고 싶은 작성자 이메일 (github 이메일)
5. commit 내용을 변경하고 싶다면
i 눌러서 INSERT 모드로 진입 후 수정
ESC 눌러서 모드 해제
:wq! 입력 후 엔터해서 저장
6. commit한 날짜를 변경하고 싶다면
GIT_COMMITTER_DATE="{원하는 날짜}" git commit --amend --date "{원하는 날짜}”
원하는 날짜는 동일하게 맞춰준다.
변경 후에는 아래 명령어로 위 명령어가 정상적으로 작동했는지 확인한다.
git log --pretty=fuller
7. 변경 완료 후
git rebase --continue
8. 수정한 commit 반영하기
이미 리모트에 올렸다면 force 옵션으로 강제 push를 해주어야 한다.
git push --force
* 참고자료
'에러' 카테고리의 다른 글
ModuleNotFoundError: No module named 'cv2' (0) | 2024.01.29 |
---|---|
Spring Tool Suite 4에서 SVN connect 설치 안될 때 (0) | 2023.03.24 |
[git] 추가하지도 않았는데 이전 커밋이 계속 들러붙을 때 (2) | 2022.09.19 |
[React] Warning: Each child in a list should have a unique "key" prop. (0) | 2022.09.15 |
[Typescript] Expected to return a value at the end of function 'read' (0) | 2022.08.10 |