- [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' 카테고리의 다른 글
[빗버킷] 로컬에서 작업하던 코드, 빗버킷 레포에 연결하기 - 토큰 password 발급하기 (2) 2024.10.08 [Git] 팀원과 서로 다른 시간대에 파일을 작성했을때, 발생하는 git pull오류 merge로 해결하기 You have divergent branches and need to specify how to reconcile them (4) 2024.07.15 [Git] 깃허브 저장소에 빈 폴더 올리기 nothing to commit, working tree clean 해결 (6) 2024.07.01 [Github] 레포지토리 비공개/공개 전환하기 (0) 2024.05.19 [Git] 실무에서 사용하는 필수 명령어 7가지, 이것만 알자! (1) 2024.02.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)