2017-05-05 9 views
0

원격 지점을 내 로컬 저장소에 병합했고 26 개의 로컬 커밋을 만들었습니다.Git에서 마지막 로컬 커밋을 실행 취소하고 원격 상태로 돌아가는 방법?

이제이 병합을 되돌리려하지만, 커밋 1을 1로 되돌리거나 원격 버전을 마지막 커밋으로 되돌리려면 되돌릴 수 있습니다.

답변이 매우 흥미로운 How to undo last commit(s) in Git? 게시물을 살펴 봤지만 로컬 되돌리기를 수행하는 간단한 방법을 찾지 못했습니다.

아무도 도와 줄 수 있습니까?

답변

1

사용 힘내 로그인 & 망할 놈이 당신이 당신의 커밋 ID를 식별 할 수있는 메시지와 함께 당신에게 커밋 ID를 줄 것이다

git log 

재설정합니다.

커밋 ID를 사용하여 다시 설정합니다.

git reset <commit-id> 

그 커밋으로 영구적으로 돌아가고 싶다면. 당신은 다음을 사용할 수 있습니다.

git reset --hard <commit-id> 
+0

당신은 지점으로 재설정 할 수있는 방법을 정확하게 모르는 팁을 사용하면'git reset --hard origin/master' 명령을 사용하여 마지막으로 원격지에있는 마스터가 원격으로 리셋 할 수 있습니다. –

+0

@ LasseV.Karlsen OP가 원점/마스터와 로컬 브랜치가 동기화되었다고 언급하지 않았으므로 origin/master가 동일한 커밋 id를 가질 것이라고 가정하는 것은 유효하지 않을 수 있습니다. – harshitpthk

+0

ok,하지만 commid ID를 사용하지 않고 해결책을 찾고 있었고, ** 내 로컬 브랜치에 ** 병합 할 때,이 목적의 정확한 브랜치의 원격 상태로 되돌아가는 것이 목적입니다. @Lasse V. Karlsen @ "Lasse V. Karlsen" – geekobi

0

나는 하나 또는 두 가지를 시도하고이 하나 조금 더러운이지만 간단하고 작동하는 것 같다 : (만약 없음을 만듭니다)

  • 체크 아웃을 다른 지점에 : git checkout -b tempo
  • git checkout -b dirty_one origin/dirty_one
: git branch -D dirty_one
  • 원격 하나와 동기화 로컬 브랜치를 다시 :
  • 나쁜 지역 지점을 제거

    그게 전부입니다.

    내가 생각하는 더러운 것은 나쁜 지역 커밋은 여전히 ​​로컬 레포에 있지만 지점은 숨겨져 있으므로 숨겨져있을 수 있습니다.

    나는 (내가 실제로 수행 한) 내 병합을 다시 실행하는 경우, 병합 그냥 잘 작동하지만 난 (더러운 부분 ... 있음)