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
반응형
'개발관련 > Git' 카테고리의 다른 글
git log 또는 git diff를 종료하는 방법 (0) | 2021.09.03 |
---|---|
이미 원격 브랜치에 푸시 된 병합 커밋을 되돌리는 방법 (0) | 2021.09.03 |
Git으로 커밋을 cherry-picking 하는 것의 의미 (0) | 2021.09.02 |
.gitignore를 Git 저장소에 커밋해야 하는가? (0) | 2021.09.01 |
Git에서 "porcelain"라는 용어의 의미 (0) | 2021.09.01 |