I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.
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
옵션과 함께 사용할 때는 주의하지 않으면 진행 상황이 손실될 수 있으므로 주의해야 합니다.
읽어 주셔서 감사합니다!