[Git] 아흑.. 커밋을 잘못했네;; 세상에 푸쉬까지 해버렸는데… 어쩌지…

필요한 작업은 두가지. 하나는 reset 하는 다시 push. 덤으로 remote에 있는 저장소와 pull을 해서 다시 한번 동기화 맞춰주기.

세번째 작업은 부가적인거니까 일단 앞에 두개만 해보자.

git reset HEAD^

이 명령을 사용하면 커밋 하나를 되돌릴 수 있다. 두개를 되돌리려면

git reset HEAD~2

이렇게 되돌린 다음엔 다시 커밋을 하고..

git commit -m ‘머라머라’

이제 Push를 해야되는데.. Github같은 곳에 있는 저장소로 올리려고 push하면 다음과 같은 메시지가 떨어진다.

$ git push origin master
To git@github.com:keesun/telepathy.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘git@github.com:keesun/telepathy.git’
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. ‘git pull’) before pushing again. See the
‘Note about fast-forwards’ section of ‘git push –help’ for details.

원격 저장소에 있는 정보가 손실 될 수 있는 작업이라서 리젝트 시킨다. 오호.. 상당히 똑똑하다. 그런데 어쩌겠는가.. 내가 원하는 작업이 바로.. 그 작업이라네.. 없애주길 바래.

이럴때 사용할 수 있는게 +다.

git push origin +master

이렇게 +를 붙여주면 경고는 무시하고 데이터가 손실되도 push한다.