git commit & push 된거 강제 rollback 하기(원격저장소 원복)

2017. 11. 24. 14:07IT개발/SVN & Git

반응형

오늘 새벽까지 개발한 버전을 commit 하고 push를 하였다. 오늘 아침에  출근해보니 팀원이 자신의 소스가 사라졌다고 한다. 

불길한 예감 으... 나의 실수(잘못 revert)로 팀원의 소스를 날린 채 commit 하고 push 한 것이다.

일단 침착하게 팀원의 소스가 살아있고, 내 소스도 살아 있는 시점으로 롤백을 해야 했다.

첨에 죄송한 나머지 어떻게 해결해야할지 몰라 소스트리만 붙잡고 누르다보니 시간만 가고, 결국 찾다찾다 오전을 다 날리고서야 찾았다...

아래의 노란색 하이라이트된 명령을 통해 특정시점의 소스로 강제 push 시켰다.

(단, 주의할점은 특정시점의 커밋 이후 모든 커밋들은 삭제된다.)

아래는 위의 명령어를 수행한 텍스트 결과를 붙여넣었다.( 긁어다 쓰세요 )

ecis-36@ecis-36 MINGW32 /c/project/git/ecisbasic ((958f087a...))
$ git reset 958f087a
ecis-36@ecis-36 MINGW32 /c/project/git/ecisbasic (base)
$ git push origin +base
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create pull request for base:
remote:   https://bitbucket.org/ddasix/ecisbasic/pull-requests/new?source=base&t=1
remote:
To https://bitbucket.org/ddasix/ecisbasic.git
 + b2f92e50...958f087a base -> base (forced update)
ecis-36@ecis-36 MINGW32 /c/project/git/ecisbasic ((958f087a...))
$ git reset 958f087a
ecis-36@ecis-36 MINGW32 /c/project/git/ecisbasic (base)
$ git push origin +base
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create pull request for base:
remote:   https://bitbucket.org/ddasix/ecisbasic/pull-requests/new?source=base&t=1
remote:
To https://bitbucket.org/ddasix/ecisbasic.git
 + b2f92e50...958f087a base -> base (forced update)

최종결과

아래와 같이 포커스된 커밋버전으로 모두 롤백이 되었다. 

(단, 특정커밋 이후 커밋들은 모두 삭제됨. 테스트 한 커밋들이라 삭제해도 무방해서 본인은 날려버렸음. )

휴~팀원들에게 민폐를 끼치다니 너무 죄송하다... 다음부턴 주의를 더 기울려 pull 을 받고 충돌을 해결해야겠다.

 

참고자료 : http://whiteship.me/?p=13516 , [Git] 아흑.. 커밋을 잘못했네;; 세상에 푸쉬까지 해버렸는데… 어쩌지…

 


 

반응형