git 작업 중 코드가 날라갔을 때??

|

아... git에 익숙하지 않아서

프로젝트 하는 도중에 poll을 하거나 push를 할 때 코드가 날라가서 난감한 경우... -_-;;


지난번에 한번 찾아서 알아뒀었는데...

오늘 마침 또 코드가 없어져서 복구하고나서 기록으로 납깁니다.


그동안에 git-svn bridge로 인해서 생기는 일인줄 알았는데...

그게 아니더라구요.


무지로 인해서 이런 경우에 매일매일 다시 짰었는데... -_-;;

이렇게 고생한 제가 다 부끄러워지네요... ㅡㅡ;


poll을 하거나 push를 하다가 conflict가 나거나 그 이외에 rebase를 할일이 생겼을 때

분명 local git에 commit을 했는데도 코드가 없어졌거나 git timeline에서 사라졌을 때!!!


reflog라는 좋은 기능이 있어요.. -_-;;


현재 맥에서 git client로 SourceTree를 사용중인데요.

SourceTree의 공식 트위터에서는 reflog가 어려운 작업이기 때문에 좀더 기다려달라는 트윗이 있네요;;

(https://twitter.com/sourcetree/status/169481814400970752 참고하세요~)


어쨌든....

local git에 commit한 상태에서 timeline에서 지금까지 작업한 코드가 날라갔다!!!

그럼 주저없이 현재 작업 중인 프로젝트를 terminal로 열어재낍니다!!!


물론 현재 작업 중인 workspace로 checkout 시킵니다. -_-;;


git checkout {작업중인 workspace 이름}

git reflog


이렇게 하면 아래와 같은 log를 볼 수 있습니다.


c62487c HEAD@{52}: reset: moving to refs/remotes/trunk

74f5003 HEAD@{53}: commit: [no-bts] 설정 push 관련 디자인 적용.

02c1491 HEAD@{54}: reset: moving to refs/remotes/trunk

236d8af HEAD@{55}: commit: [no-bts] Entitlement 수정.

d7764a6 HEAD@{56}: checkout: moving from 1.0.0_local to master


이중에서 앞쪽에 볼드 처리 된 hashcode가 있습니다.


이걸 그대로 복사 합니다.

그리고


git reset -hard {복사한 hashcode}


그리고나서 timeline을 보면???

복구되어 있네요??


그대로 push를 하시면 됩니다. -_-;;;


아... 이거 부끄러워집니다. ㅠㅠ


참고 : http://effectif.com/git/recovering-lost-git-commits

And
prev | 1 | 2 | 3 | 4 | ··· | 60 | next