개발관련/Git

"git commit" 대신 "git commit --amend" 실행을 취소하는 방법

Rateye 2021. 9. 2. 11:29
728x90
반응형

 

질문 : "git commit"대신 "git commit --amend"실행을 취소하는 방법

실수로 이전 커밋을 수정했습니다. 특정 파일에 대한 변경 내역을 유지하려면 커밋을 분리해야합니다.

마지막 커밋을 취소하는 방법이 있습니까? git reset --hard HEAD^ 와 같은 작업을 수행하면 첫 번째 커밋도 취소됩니다.

(아직 원격 디렉토리로 푸시하지 않았습니다)

답변

HEAD 커밋과 동일한 세부 정보를 사용하지만 부모가 이전 버전의 HEAD 새 커밋을 만드는 것입니다. git reset --soft 는 분기 포인터를 이동하여 현재 분기 헤드가 현재있는 위치와 다른 커밋 위에 다음 커밋이 발생하도록합니다.

# Move the current head so that it's pointing at the old commit
# Leave the index intact for redoing the commit.
# HEAD@{1} gives you "the commit that HEAD pointed at before 
# it was moved to where it currently points at". Note that this is
# different from HEAD~1, which gives you "the commit that is the
# parent node of the commit that HEAD is currently pointing to."
git reset --soft HEAD@{1}

# commit the current tree using the commit details of the previous
# HEAD commit. (Note that HEAD@{1} is pointing somewhere different from the
# previous command. It's now pointing at the erroneously amended commit.)
git commit -C HEAD@{1}
출처 : https://stackoverflow.com/questions/1459150/how-to-undo-git-commit-amend-done-instead-of-git-commit
728x90
반응형