[Git] 최종 commit을 변경하는 git amend
~ 상황 가정 ~
나는 분명 작업 공간에 test1.txt 파일을 만들었는데,
커밋 메시지를 "test3.txt 파일 생성"이라고 실수로 잘못 작성해버렸다..!
이전 커밋 기록이 존재한다면 git reset --soft가 먹히겠지만,
방금 전의 커밋이 작업 공간 내의 처음이자 마지막 커밋이라면 어떻게 할 것인가?
??? : .git 폴더를 삭제하고 다시 git init 합니다
1. git amend
최종 커밋을 변경해주는 명령어
정확히 말하자면 git commit --amend -m "변경내용" 으로 작성하는 것이 맞다.
2. 다른 방법들
Master branch에 순서대로 v1 / v2 / v3 / v3-1 / v3-2 라는 커밋이 기록되었다고 가정하자.
막상 커밋을 하고 보니, v3-2라는 메시지가 마음에 들지 않는다... 어떻게 할 것인가?
방법 1)
git commit --amend -m "변경메시지"
v3-2가 브랜치의 Header(마지막 커밋)이기 때문에 적용 가능
방법 2)
git reset --soft v3-1 해시코드
git commit -m "변경메시지"
v3-2 이전에 커밋이 존재하기 때문에 적용 가능
방법 3)
git rebase i HEAD~3
I (INSERT실행)
변경메시지 입력
esc
:wq
아싸리 가장 최근 커밋(v3-2)를 기점으로 바로 위 3개 커밋(v3-2, v3-1, v3)까지 합쳐버린다 (위 2개 방법과는 다른 결과)
vi에디터에서 변경 메시지를 작성할 수 있다는 것이 특징
상황에 따라, 입맛따라 편하고 적당한거 골라서 잘 쓰는게 최고인 것같다.
정 어려우면 진짜 .git 삭제하고 git init 이 정답이 될지도 (단, 처음이자 마지막 커밋을 수정한다는 가정 하에)