커밋을 삭제하지만 Git의 변경 사항은 유지

John Wachira 2024년2월15일
  1. 커밋을 삭제하지만 Git의 변경 사항은 유지
  2. git reset 명령으로 커밋 삭제 및 변경 사항 유지
커밋을 삭제하지만 Git의 변경 사항은 유지

이 문서에서는 동일한 커밋에 의해 도입된 변경 사항을 유지하면서 Git 커밋을 실행 취소하는 데 필요한 단계를 설명합니다. 동일한 효과를 갖는 두 가지 명령을 사용할 수 있습니다.

더 이상 고민하지 않고 바로 시작하겠습니다.

커밋을 삭제하지만 Git의 변경 사항은 유지

예를 사용하여 이 개념을 살펴보겠습니다.

리포지토리에 아래에 표시된 커밋 기록이 있다고 가정하면 최신 커밋을 삭제하고 변경 사항을 유지하려면 어떻게 해야 합니까?

저장소 커밋 내역

목표를 달성하기 위해 사용할 수 있는 두 가지 방법이 있습니다. 가장 쉬운 첫 번째 방법을 확인해 봅시다.

git reset 명령으로 커밋 삭제 및 변경 사항 유지

아래와 같이 git reset 명령을 사용하여 변경 사항을 유지하면서 커밋을 취소할 수 있습니다.

$ git reset HEAD~

이렇게 하면 Update Config.py 커밋이 제거되지만 파일에 대한 변경 사항은 유지됩니다. git log 명령을 실행하여 사례를 확인할 수 있습니다.

변경 사항을 보존하는 동안 커밋 취소

git status 명령을 실행하면 스테이지되지 않은 변경 사항이 있음을 알 수 있습니다. 이는 반드시 파일이 변경되었음을 의미하지는 않습니다.

--soft 또는 --hard 옵션 없이 git reset 명령을 사용하면 Git은 커밋의 영향을 받는 파일을 변경하지 않고 지정된 커밋을 실행 취소합니다.

인덱스에 변경 사항을 추가하고 git commit --amend--no-edit 명령을 실행하여 인덱스에서 변경 사항을 제거하고 최신 커밋에 마운트할 수 있습니다.

또는 커밋을 삭제하는 대신 개발을 계속하고 새 커밋을 만들 때 git commit --amend 명령을 실행할 수 있습니다. 이 시점에서 삭제하려는 커밋에 새 수정 사항을 추가하고 커밋 메시지를 편집할 수도 있습니다.

간단히 말해서 Git을 사용하면 커밋을 취소하고 동일한 커밋에 의해 도입된 변경 사항을 유지할 수 있습니다. git reset 명령과 git commit --amend 명령을 사용하여 목표를 달성할 수 있습니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Commit