GIT

[git]이전 커밋으로 돌아가야 할 때

자가라o 2021. 6. 18. 03:54

이전 커밋으로 돌아가야 했었다..

그때 내가 했던 이상한? 방법에 대해 기록하고자 한다.


최종 git push 이후에 이상한 commit을 몇개 해버려서 이전 commit으로 되돌아가야 하는 상황이었다.

 

돌아가야 했다.

1. 일단 git log/reflog로 돌아가야하는 commit의 id를 찾았다.

reflog

 

2. 해당 commit으로 이동

$git reset --hard <commit id>

 

3. 여기서 끝나면 좋은데

pull이 4개나 쌓여있었다...

분명 commit엔 아무것도 안잡히는데 pull이 4개씩이나 쌓여있었다...

그렇다고 pull을 땡겨버리니 다시 원상복귀...

 

4. 뒤져보니 원격 origin/master에 실수로 넣은 commit이 그대로 있었다...!

git이 로컬에 있는 branch만 잘 바꾼다고 되는게 아니라

commit-push로 원격origin/master를 변경하고 

그 변경된 원격origin/master로 부터 pull을 땡기는 것이라는 걸 이제야 알았다.

 

5. 로컬의 완성?된 branch를 강제로 원격에 push

$git push origin master

라고 했을때 다음과 같은 에러가 날 수 도 있다.

$git push -f origin master	// 그럴때는 -f로 강제 push해준다.

6. 잘? 마무리됐다.

사실 master말고 branch에는 제대로 commit되어 있어서 merge를 했으면 됬을것도 같은데..

이런저런 공부했다치고

merge는 다음에 필요할때 공부해야지