paint-brush
Git에서 원격 커밋을 삭제하는 방법~에 의해@timmouskhelichvili
310,078 판독값
310,078 판독값

Git에서 원격 커밋을 삭제하는 방법

~에 의해 Tim Mouskhelichvili2m2022/05/31
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

원격에서 커밋을 삭제하려면 커밋이 위에서부터 연속적인 경우 git Reset 명령을 사용하고, 그렇지 않은 경우 대화형 리베이스를 사용하면 됩니다. 로컬에서 커밋을 삭제한 후 force 옵션과 함께 git push 명령을 사용하여 해당 변경 사항을 원격으로 푸시합니다.
featured image - Git에서 원격 커밋을 삭제하는 방법
Tim Mouskhelichvili HackerNoon profile picture
0-item
1-item

Git을 정기적으로 사용하는 개발자에게는 기록 조작이 매우 일반적입니다. 실제로 개발자는 Git 기록에서 커밋을 제거해야 하는 경우가 많습니다. 다행히 Git은 이 작업을 가능하게 하는 많은 명령을 제공합니다.


시작해 봅시다 😋.

0단계 - 준비

Git 기록을 조작하기 전에 git status 명령을 사용하여 작업 디렉터리에 변경 사항이 없는지 확인하세요.

1단계 - 로컬에서 커밋 삭제

원격 서버에서 커밋을 삭제하려면 먼저 로컬 기록에서 커밋을 제거해야 합니다.

1.1 위에서 연속적으로 커밋하는 경우

제거하려는 커밋이 커밋 기록의 맨 위에 있는 경우 HEAD 개체 및 제거하려는 커밋 수와 함께 git reset --hard 명령을 사용하세요.


 git reset --hard HEAD~1

이 명령은 최신 커밋을 제거합니다.


 git reset --hard HEAD~3

이 명령은 최근 3개의 커밋을 제거합니다.


다음과 같이 커밋의 해시를 사용하여 특정 커밋까지 제거할 수도 있습니다.

 git reset --hard <hash>

1.2 비연속 커밋의 경우

그러나 연속되지 않은 커밋을 제거하려면 대화형 리베이스를 사용해야 합니다.


  • [ ] git reflog 명령을 사용하여 제거하려는 모든 커밋이 포함된 마지막 커밋 해시를 찾습니다.
  • [ ] git rebase -i <hash> 사용하여 대화형 리베이스를 시작합니다.
  • [ ] 편집 화면에서 제거하고 싶은 커밋 라인을 찾아서 제거하세요.
  • [ ] 저장하고 종료합니다(충돌을 해결해야 할 수도 있음)
  • [ ] git rebase --continue 사용하여 대화형 리베이스를 종료 하거나 리베이스를 중단하여 다시 시작하세요.

2단계 - 원격에서 커밋 삭제

원격에서 커밋을 삭제하려면 git push 명령을 사용하여 로컬 변경 사항을 원격으로 푸시해야 합니다.


 git push origin HEAD --force


로컬 기록이 원격 기록과 다르므로 force 옵션을 사용해야 합니다.

마지막 생각들

보시다시피 Git을 사용하면 원격 서버에서 커밋을 쉽게 삭제할 수 있습니다.


하지만 git push 명령을 force 옵션과 함께 사용할 때는 주의하지 않으면 진행 상황이 손실될 수 있으므로 주의해야 합니다.


읽어 주셔서 감사합니다!