Jan 01, 1970
Git을 정기적으로 사용하는 개발자에게는 기록 조작이 매우 일반적입니다. 실제로 개발자는 Git 기록에서 커밋을 제거해야 하는 경우가 많습니다. 다행히 Git은 이 작업을 가능하게 하는 많은 명령을 제공합니다.
시작해 봅시다 😋.
Git 기록을 조작하기 전에 git status 명령을 사용하여 작업 디렉터리에 변경 사항이 없는지 확인하세요.
원격 서버에서 커밋을 삭제하려면 먼저 로컬 기록에서 커밋을 제거해야 합니다.
제거하려는 커밋이 커밋 기록의 맨 위에 있는 경우 HEAD
개체 및 제거하려는 커밋 수와 함께 git reset --hard
명령을 사용하세요.
git reset --hard HEAD~1
이 명령은 최신 커밋을 제거합니다.
git reset --hard HEAD~3
이 명령은 최근 3개의 커밋을 제거합니다.
다음과 같이 커밋의 해시를 사용하여 특정 커밋까지 제거할 수도 있습니다.
git reset --hard <hash>
그러나 연속되지 않은 커밋을 제거하려면 대화형 리베이스를 사용해야 합니다.
git reflog
명령을 사용하여 제거하려는 모든 커밋이 포함된 마지막 커밋 해시를 찾습니다.git rebase -i <hash>
사용하여 대화형 리베이스를 시작합니다.git rebase --continue
사용하여 대화형 리베이스를 종료 하거나 리베이스를 중단하여 다시 시작하세요.원격에서 커밋을 삭제하려면 git push 명령을 사용하여 로컬 변경 사항을 원격으로 푸시해야 합니다.
git push origin HEAD --force
로컬 기록이 원격 기록과 다르므로 force
옵션을 사용해야 합니다.
보시다시피 Git을 사용하면 원격 서버에서 커밋을 쉽게 삭제할 수 있습니다.
하지만 git push
명령을 force
옵션과 함께 사용할 때는 주의하지 않으면 진행 상황이 손실될 수 있으므로 주의해야 합니다.
읽어 주셔서 감사합니다!