New World

[Github] 잘못 올린 커밋 되돌리기 본문

Programming/Bug Zero

[Github] 잘못 올린 커밋 되돌리기

hyeovi 2024. 11. 28. 09:48
728x90
반응형

회사에서 사용하는 깃허브에 커밋을 잘못 올렸다... 내가 사용하고 있는 테스트 파일까지 올려버린 것..

 

다급하게 잘못 올린 커밋을 되돌리는 방법을 찾았다.

방법은 2가지인 것 같은데 상황에 맞는 방법으로 진행하자!

 

우선, 커밋을 올렸던 것을 확인해보자.

커밋을 올렸던 이력과 커밋에 대한 정보를 확인할 수 있다.

이 명령어는 로컬 git 로그를 확인하는 명령어이다.

 

> git reflog

 

1. undo commit (커밋 취소)

undo commit 은 말 그대로 커밋만 취소하는 명령어이다.

git reflog 를 통해 취소하고 싶은 커밋의 값을 가지고 와서 아래 명령어를 입력하면 된다.

 

> git reset --soft <커밋 ID>

 

만약, soft 부분을 hard 로 입력하게 되면 커밋 취소와 함께 이전에 로컬에서 수정했던 파일도 모두 원복된다

즉, 이전에 수정했던 파일이 모두 사라진 상태가 된다.

하지만, 이전에 수정했던 파일을 커밋으로 올려두었다면 빨리 커밋을 다시 가져와서 진행하자.

다시 커밋을 가져오는 것은 커밋 취소 명령어를 원하는 커밋으로 되돌리면 된다.

만약, 내가 HEAD 3을 hard로 되돌렸다면 다시 HEAD 1로 커밋을 되돌리면 된다.

 

2. revert changes in commit (특정 커밋을 되돌리는 새로운 커밋을 생성)

잘못 올린 커밋을 되돌리는 커밋을 생성한다.

즉, 커밋을 하나 더 올리게 되는데 이전에 잘못 올린 커밋을 되돌리기 위한 커밋이 생성된다.

새로운 커밋으로 이전 커밋을 잊어버린다!! (약간, 새로운 애인을 통해 이전 애인을 잊어버린다는 느낌?)

커밋을 하나 더 생성하는 것으로 다른 사람도 아마 이 커밋을 확인할 수 있을 것으로 보인다.

 

> git revert <커밋ID>

 

뭐, 둘이 차이라고 하면

revert 이건 깃허브에서 바로 얘가 이걸 엎었구나~ 하게 알게 되는 것

undo 는 깃허브에서 바로 알 수는 없지만 git reflog 하면 이전 기록을 확인할 수 있다는 것에 차이가 있다.

반응형
Comments