개발 일기

Git reset 하기 + git commit reset hard로 시간 여행하기 본문

Tech/GIT

Git reset 하기 + git commit reset hard로 시간 여행하기

flow123 2021. 12. 3. 18:46

상황:

git ignore에 aws.yml을 지정했음에도 설정파일이 깃헙의 원격 repository 에 그대로 올라갔다. 

Git 파일을 삭제하더라도, history 에 파일이 남아있다. 

 

해결책 

-이럴 때는 푸시 이전 시점으로 시간 여행을 하고(log) reset hard 후 push한다.  

- AWS IAM/BUCKET도 삭제하였다. (미연이 일을 방지하기 위해서) 

//마스터 브랜치에서 commit 이력보기 
git log 
//commit id 가 나온다. 내가 돌아가려는 아이디를 abcde라고 해보자. 
git reset --hard abcde 
//
git push -f origin master
//push origin 을 그냥 할 경우, 아래의 에러가 뜬다. error: src refspec main does not match any
//error: failed to push some refs to 'https://github.com/jieun-dev1/weeklytest.git'

 

상황2: 

깃헙에 이전 상태로 잘 복귀가 되었다. 그런데, 당황한 나머지 백업하는 걸 까먹었다. 

그럴 때는 다시 git reflog 로 시간여행을 할 수 있다. 

 

git reflog 

//삭제한 커밋 기록 abcde 까지 나온다. 

git checkout abcde
//backup브랜치를 생성해준다. 
git branch 1203backup 
git checkout 1203backup

//그럼 로컬에 성공적으로 반영되어있음!

https://velog.io/@sonypark/reset-hard%EB%A1%9C-%EC%82%AD%EC%A0%9C%ED%95%9C-%EC%BB%A4%EB%B0%8B-git-reflog%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%82%B4%EB%A6%AC%EA%B8%B0

'Tech > GIT' 카테고리의 다른 글

TIL - GitRepository 생성  (0) 2022.01.13
Git pull request - can't automatically merge 해결하기  (0) 2021.12.04
Git push error  (0) 2021.11.28
Github 에 commit 하기 전에 체크사항  (0) 2021.10.19
Comments