목차
- 문제 상황 설명
- 문제 정의
- 해결 방법 (해결 완료)
문제 상황
다른 컴퓨터에서 작업을 하다가, 깃 커밋을 두 번 정도 했다. 마지막 커밋은 author 변경해야 하는 것이 기억나서 했다. 하지만 그 전 커밋은 author가 다른 사람으로 되어 있었고, 개인 깃헙에 push하려고 하니, 403 에러가 떴다.
문제 정의
원격 저장소에 저장된 커밋 중, 가장 최신이 아닌 커밋의 author가 미스매치됨.
git commit 중 직전 커밋이 아닌, 그 보다 더 전의 커밋을 수정해야 함.
해결 방법 (해결 완료)
1. 이전 커밋을 수정 모드로 바꾸기
# 로그를 확인하여 author가 잘못된 커밋을 찾자 (해시값도 좋고, 비교적 최신이면 몇 번째인지 확인)
$ git log
# 끝에서 두 번째 커밋이 문제. 커밋 메세지를 수정하자
$ git rebase -i HEAD~2
# nano 편집기가 열렸다;;
pick #############################
pick #############################
# 위처럼 pick으로 시작하는 메세지를 e로 변경한다
e #############################
e #############################
# nano 편집기를 종료 (종료 -> 저장 -> default로 저장)
## ctrl + X / Y / enter
2. 수정모드로 되어있는 커밋의 author 변경 (##### 본인의 이메일을 작성하면 된다)
# author 수정
$ git commit --amend --author="#######@gmail.com"
3. 수정 내역을 반영 (잘 되면 가장 아랫줄과 같이 successfully 확인 가능)
# 잘 수정되었는지 확인
$ git status
interactive rebase in progress; onto #######
Last command done (1 command done):
edit #########################################
Next command to do (1 remaining command):
edit #########################################
(use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'main' on '#######'.
(use "git commit --amend" to amend the current commit)
(use "git rebase --continue" once you are satisfied with your changes)
# 반영하고 싶으면 아래와 같이 입력하라고 윗 줄에서 지시 (반영)
$ git rebase --continue
# 커밋이 두개였어서 연속해서 위 명령어 한 번 더 입력 (반영)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.
4. git log 찍어보면 author가 잘 바뀌어있을 것. push!
다행히 문제 해결..휴..
반응형
'CS' 카테고리의 다른 글
ubuntu matplotlib 한글 폰트 설정 (0) | 2023.05.19 |
---|---|
Git 기본 에디터 vim으로 변경 (0) | 2023.05.09 |
ubuntu sudo 권한 부여 방법 (0) | 2023.05.08 |
웹 서버 동작 여부 확인하기 (curl) (0) | 2023.05.04 |
[docker] python-alpine 베이스 이미지에 matplotlib 설치하기 (0) | 2023.01.10 |