브랜치를 master여기와 원격으로 모두 호출 하고 리모트를 호출한다고 가정하면 origin다음을 수행 할 수 있습니다.
git reset --hard <commit-hash>
git push -f origin master
그러나 다른 사람이 원격 저장소를 작업 중이고 변경 사항을 가져온 경우이 작업을 수행하지 마십시오. 이 경우 원하지 않는 커밋 을 되 돌린 다음 평소대로 푸시하는 것이 좋습니다 .
업데이트 : 당신은 다른 사람들이 당신이 푸시 한 변경 사항을 가져 왔음을 아래에서 설명 했으므로 모든 변경 사항을 되 돌리는 새로운 커밋을 만드는 것이 좋습니다 . Jakub Narębski 의이 답변 에서이 작업을 수행하는 옵션에 대한 좋은 설명이 있습니다 . 가장 편리한 방법은 되돌릴 커밋 수와 가장 적합한 방법에 따라 다릅니다.
귀하의 질문에서 이미 지점 git reset --hard을 재설정 하는 데 사용 했음이 분명하기 때문에 master지점 git reset --hard ORIG_HEAD을 이전 위치로 다시 이동 하는 데 사용해야 할 수도 있습니다 . (와 항상 똑같이, 깨끗하고, 올바른 지점에 git reset --hard있는지 git status, git reflog명백하게 손실 된 커밋을 복구하는 도구로 알고 있는지 확인하십시오.) 또한 ORIG_HEAD을 사용하여 올바른 커밋 을 가리키는 지 확인해야합니다 git show ORIG_HEAD.
문제 해결:
" ! [원격 거부 됨] a60f7d85-> 마스터 (수신 수신 거부) " 와 같은 메시지가 표시되는 경우
그런 다음 특정 지점에 대한 지점 기록 다시 작성을 허용해야합니다. 예를 들어 BitBucket에서는 "분기 기록 다시 쓰기가 허용되지 않습니다"라고 말했습니다. 체크 Allow rewriting branch history해야하는 체크 박스 가 있습니다.
origin/master다른 사용자가 귀하 를 끌어 당기지 않았습니까? 공용 (즉, 로컬이 아닌) 리포지토리의 기록 변경은 항상 피해야합니다.