프로젝트 중 소스트리로 깃을 사용할 때 문제가 생겨 이것저것 건드리다가 다른 계정으로 git push를 했다는 것을 지금 발견했다...어쩐지 이상하더라.
고쳐봅시다
23.09.20
개인 repo에서 test후에 고치려고했는데... author를 변경하면 커밋한 날짜까지 함께 업데이트 되기 때문에
다른 분의 커밋 시간대까지 바뀌어버려서 안(못)하기로 했다! 그래도 언제 쓰일지 모르니 방법을 정리해놓도록하겠다.
1. git rebase -i 커밋id
! 수정하고자 하는 커밋 전에 있는(꼭 직전이 아니어도 된다) 커밋 아이디를 입력하자.!
1번처럼 입력할 경우 입력한 커밋 id 다음 커밋부터 수정할 수 있기 때문이다.
2.(1) 1번의 결과로 커밋 log 마냥 커밋들이 좌르륵 뜬다.
2.(2) i를 누르면 글자를 입력하고 수정할 수 있다.
2.(3) 수정하고자 하는 커밋의 pick을 e 또는 edit으로 고쳐준다.
2.(4) esc 버튼을 누른 후 :wq을 입력하면 해당 화면에서 벗어날 수 있다.
* 참고
:wq 명령어는 2.(3)에서 변경한 내용을 저장후에 나와주게 하는 명령어이다.
아래는 결과!
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
3.(1) git commit --amend --author="사용자명 <이메일>"
을 입력한다. ( 이때 입력한 사용자명<이메일> 로 author가 변경되는 것이다.)
3.(2) 그럼 아마 또 어떤게 좌르륵 나오는데 그냥 :wq로 나오면 된다.
3.(3) git rebase --continue
이때 여러 개의 커밋을 수정하려고 한 개 이상의 pick을 edit으로 고쳤다면, 자동으로 MINGW64 ~/Desktop/git_practice_2/hello-world (main|REBASE 1/2) 요렇게 나오면서 입력할 수 있는 커서가 뜬다.
. 이때 3.(1)~ 3.(3)을 반복하면 된다.
3.(4) 여기까지는 로컬 저장소에만 반영되었으니 이제 원격 저장소에 push 해 줄 차례다! git push origin +main
4. 끝
'Error' 카테고리의 다른 글
List의 NULL을 방지하려고 초기화해줬는데 왜 NPE가? (0) | 2024.01.15 |
---|---|
application.yaml 설정- org.hibernate.sql 작동 안함 (0) | 2024.01.09 |
Git "There is no tracking information for the current branch. Please specify which branch you want to merge with. "오류 (0) | 2024.01.09 |
400 에러 - 필드가 하나인 DTO의 기본 생성자 부재... (0) | 2023.08.22 |
조회 기능 구현 시 JsonMappingExeception 오류 (0) | 2023.08.04 |