원격

2012-04-08 3 views
2
내가 사자라는 지점에 있어요

병합 되돌리기, 나는 잘못이 수행 :원격

git push origin lion:master 

대신

git push eng lion:master 

기본적으로 두 번째 줄 준비에 사자 분기를 밀어위한 것입니다 heroku 응용 프로그램하지만 실수로 모든 코드를 원본 마스터로 병합합니다.

어떻게 되돌릴 수 있습니까? 내 지점에는 약 200 개의 커밋이 있습니다.

그렉

+0

당신이 도움이 아무것도 찾을 수 있는지 확인 [this] (http://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git), 가장 인기있는 질문 중 하나입니다. 최소한 지금까지) – DOK

답변

1

'git reset'명령은 선택적 commit 인수를 취합니다. 당신이 원산지 저장소에 액세스 할 수있는 경우 그래서, 당신은 시도 할 수 있습니다 : 당신이 저장소에 액세스 할 수없는 경우

git reset [--soft | --mixed] <last-good-commit>   # in the remote/origin repository 

당신이 할 수있을 것입니다 :

git checkout -b rework <last-good-commit> 
git push origin rework:master         # The push merge will produce a commit that works back to <last-good-commit> 
+1

"[거부 된] 재 작업 -> 마스터 (빨리 감기가 아님) 오류 : 일부 참조가 '[email protected] : ....'으로 푸시되지 못했습니다. 히스토리 손실을 방지하기 위해, 빨리 감기 업데이트가 거부되었습니다 .... –

2

다른 누구도 이미 사라하지 않고 새로운 변화 가지고있다 가정하면

1) 당신이 origin 저장소에 직접 액세스 할 수있는 경우가 origin의 관련 지점에 git reset --hard <commit ID>을 할 수 있습니다 .

2) 아니면 이전 커밋 ID가 git push -f 일 수 있습니다.

+0

마지막 커밋 만 다시 설정합니다. 나는 200을 가지고있다 ... – Gregory

+0

'git reset --hard '을 실행하면 안된다. –