- [Git Github] 실수로 잘못된 커밋 올렸을때, 이전 commit 으로 되돌리기2024년 07월 14일
- 주사위 clice
- 작성자
- 2024.07.14.:39
반응형
이 트러블 슈팅은 실수로 한 커밋을 취소하고 이전으로 되돌릴 때,
잘못된 병합을 되돌릴 때, 잘못된 리베이스를 되돌릴 때,
실수로 파일을 삭제하거나 변경했을 때 등등
이전 상태로 되돌려야 할 때 적용할 수 있는 해결 방법이다
문제 상황
다음은 rebase를 통한 해결에 대한 설명이다
충돌이 발생하면 충돌 해결 후 재배치(rebase)를 계속합니다.
협업 시 다른 개발자와 충돌을 줄일 수 있습니다.
나는 지금 충돌이 발생하면 안 되는 상황에 처해져 있었다.
충돌 하면 안되니까 `rebase` 를 해야 겠네? 라고 생각했다
내 브랜치에서
git pull origin develop2 --rebase
를 했다
근데 develop2에 있는 코드 전부가 내 브랜치로 오긴 왔는데, 내가 내 브랜치에서 작성해둔 모든 코드가 사라져버렸다
즉,develop2==내 브랜치
이렇게 코드들이 같아지고, 내가 작성한 코드들은 전부 사라져버렸다
내가 작성해둔 코드를 다 없애버리면 당연히 충돌이 안 나지 ಠ益ಠ
충돌은 둘째치고, 내가 커밋 기록을 이전 상태로 되돌리자해결 방법
1. 아래 명령어를 사용하여 이전 커밋의 SHA 해시를 찾는다
git reflog
이 명령어는 아래 사진처럼 최근의 모든 git 작업(커밋, pull, rebase 등)을 나열한다.
여기서git pull --rebase
를 수행하기 전 상태의 커밋 해시를 찾는다
아니면 github 커밋 내역에서 오른쪽에 있는 해시값을 바로 가져와도 된다
2. 이제 찾은 해시값을 사용해 해당 커밋으로 되돌린다
git reset --hard 되돌리고 싶은 커밋의 해시값 # 예시 # git reset --hard 6a9f5aa
3. 선택사항(잘 되돌아왔는지 확인)
git branch git checkout feat-clicelee/home-page # 확인하고 싶은 브랜치로 와서 확인을 한다 git add . git commit -m"error: git branch conflict test" # 확인 커밋을 작성한다
이 과정을 통해 실수한 커밋의 이전의 상태로 되돌릴 수 있다
끝!
관련 글
이 트러블슈팅은 #itpick 을 진행하면서 발생한 문제이다
그리고 내가 rebase를 선택했냐면... git pull, merge 꼬였을때 해결하는 방법 이 글에서 그러라고 했었다...
ⓒ clice lee clicelee
클라이스의 개발일지 입니다반응형'IT 사용 팁 > Git GitHub' 카테고리의 다른 글
다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)