Git에서 마지막 커밋 실행 취소
Git으로 작업하는 동안 우리는 과거에 저지른 실수로 인해 광범위하게 다시 커밋하거나 심지어 완전히 함께 제거하기 위해 마지막 커밋을 의도적으로 실행 취소하려는 다양한 상황에 직면합니다. 간단한 Undo Last Commit
옵션이나 가장 인기 있는 기능인 키보드 단축키가 있다면 Git을 얼마나 더 많은 사람들이 사용할지 생각해 보십시오.
위에서 논의한 것과 동일한 작업을 수행하는 간단하고 강력한 명령이 있습니다. 이 명령은 마지막 커밋을 삭제하고 해당 저장소에서 마지막 커밋이 수행되기 전의 상태로 HEAD(현재 분기)를 복원하기 때문에 정말 강력합니다. 새로운 Git 사용자에게는 다소 혼란스러울 수 있지만 일단 손에 닿으면 Git 도구 상자에 매우 쉬워질 것입니다.
Git에서 마지막 커밋 실행 취소(긴 버전)
먼저 원하는 터미널을 열고 Git 상태를 실행합니다. 이것은 우리가 만든 모든 커밋 목록을 포함하여 저장소의 상태를 보여줍니다. 대부분의 경우 세 가지 커밋이 있다고 말합니다.
첫 번째는 현재 저장소에 있는 master
라는 분기에 대한 커밋입니다. 두 번째는 Dev
라는 새 분기에 대한 커밋이고, 마지막으로 세 번째는 NewDev
라는 또 다른 분기에 대한 커밋입니다.
마지막 두 가지는 우리가 취소하고 싶은 것이기 때문에 흥미롭습니다. Dev
및 NewDev
에 대한 커밋을 버리고 해당 커밋이 수행되기 전의 상태로 HEAD를 복원하려고 합니다. 아래 명령을 실행하고 그 후에 어떤 일이 발생하는지 봅시다.
$ git reset --hard
HEAD는 이제 이전의 이전 상태에 있습니다. 보시다시피 새 HEAD 포인터는 이제 다음 커밋으로 돌아갑니다. Dev
로 표시된 커밋은 더 이상 없습니다. 또한 NewDev
로 표시된 커밋은 다음 커밋
으로 돌아갑니다.
Git에서 마지막 커밋 실행 취소(짧은 버전)
마지막 커밋을 취소하려면 커밋을 취소하려는 분기에 있는지 확인한 다음 git reset –hard를 실행합니다. 현재 분기의 마지막 커밋을 취소하려면 master
에 있는지 확인한 다음 아래 명령을 실행합니다.
git reset --hard origin/master.
위에서 언급한 절차는 이러한 변경 사항이 더 이상 필요하지 않다고 완전히 확신할 때만 적용할 수 있습니다. 그러나 반대로 이러한 변경 사항이 작업 복사본의 커밋되지 않은 로컬 변경 사항으로 필요한 경우 이 경우 reset
명령이 이 문제에 대한 솔루션입니다.
$ git reset --soft HEAD~1
reset
은 현재 HEAD 분기를 특정 지점으로 취소합니다. 위에서 언급한 예에서 우리는 최근 실행 취소 전에 마지막 커밋으로 돌아가도록 명령하고 있습니다. --soft
플래그는 실행 취소된 개정의 변경 사항이 복원되도록 합니다.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn