2017-10-13 2 views
1

나는 이 다중으로 커밋되고은 마스터에 이 커밋은 모두 원격으로 푸시됩니다. 예를 들어이미 여러 푸시 된 커밋으로 되돌리기

,

현재 헤드는 ABCDE,하지만 난 다시 9kjhfa에 가고 싶어. 9kjhfa로 되돌리는 방법. 가능한 두 가지 시나리오가 나에게 있습니다 ABCDE와 askdjf 사이의 모든 커밋을 유지하면서

1) 중, 9kjhfa에 ABCDE에서 돌아가 다음 잠시 후에 나는 또한 ABCDE하는 9kjhfa에서 전진

2) 또는 ABCDE와 askdjf 사이의 커밋을 유지하지 않고 그냥 유래에 검색 ABCDE 를 작동하지 않는

commit abcde    <-- current HEAD 
commit easlk 
    ... 
commit iwqeur 
    ... 
commit askdjf 
    ... 
commit 9kjhfa    <-- want to go back to this point 

git revert 9kjhfa 9kjhfa에에서 되돌아 가서 구글하지만 그것을 할 수있는 명확한 방법을 찾을 수 없습니다. 당신은 원격으로 리셋 힘 푸시 할 수

+1

가장 깨끗한 방법은 이러한 것들을 뒤집는 커밋을 추가하는 것입니다. 이것은 가장 깨끗하고 쉬운 해결책입니다. 이러한 커밋을 삭제하려면 강제 푸시가 확실히 수행 될 수 있지만 짧은 대답은 다음과 같습니다. 사용자가 repo를 사용하는 유일한 사용자가 아니라면하지 마십시오. –

+0

재설정 필요, 되돌릴 필요 없음 – Alexan

답변

0

:

git reset --hard <commit hash> 
git push -f <remote name> <branch name> 
0

을 나는 다음과 같은 방식으로 그것을했다 :

git checkout 9kjhfa 
git branch revert 
git checkout revert 
git push origin revert:master -f 

참고 :이 자식 역사에서 커밋을 제거, 당신은 할 수 없습니다 그들을 돌려 보내. 당신이 커밋되지 않은 작업을 계속해야하는 경우

1

망가

--hard 멀리 모든 커밋되지 않은 변경을 던져, 그것을 할

git reset --hard <commit id here> 

변경 사항은 사용 유지하려면 부드러운

git reset --soft <commit id here> 

원격 마스터 브랜치 되돌리기

git push <remote name> <branch name> -f 
관련 문제