Git & GitHub

[Git] 최종 commit을 변경하는 git amend

칸쵸. 2024. 1. 5. 01:45
728x90

 

~ 상황 가정 ~

 

나는 분명 작업 공간에 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 이 정답이 될지도 (단, 처음이자 마지막 커밋을 수정한다는 가정 하에)