어제의 나....반성해!!😭
어제 개인과제로 만든 자기소개 앱 파일을 정리하면서 필요없는 것들을 삭제했었다.
그런데 오늘 앱을 실행하려는데 이런 에러가 떴다.
그땐 mipmap
이 뭔지 몰랐고, 그냥 내가 만든게 아니길래 지워버렸는데...😂
없으면 안되는거구나....ㅠㅠㅠ
참고로 Mipmap은 Drawable과 함께 안드로이드 애플리케이션에서 이미지 리소스를 관리하는 것이다.
다행히도 mipmap
삭제한 것을 코드 파일과 따로 커밋해서 push 내용을 취소해도 아무런 지장은 없을 것 같았다.
push를 되돌리는 방법은 2가지가 있다.
1) reset: 되돌리고 싶은 시점의 commit 이력으로 돌아가는 것
2) revert: 현재까지 남긴 이력들을 유지한 채 되돌리고 싶은 commit을 원상복귀시키는 것 (복구 commit이 추가됨)
난 mipmap
을 삭제한 이후로 수정된 내용도 없고, 복구 commit이 추가되는게 싫어서 reset으로 할 것이다!
혹시 팀프로젝트 같이 여러 사람이 사용하는 거라면 reset은 되도록 사용하지 않는 것을 추천한다. 다른 사람이 수정한 내용도 날릴 확률이 높다.
커밋 내역을 확인하는 방법 2가지!
git log --oneline
git log
를 할 수도 있지만 commit ID를 전체 해시 값으로 표시하므로 알아보기가 힘들다.
그래서 짧은 해시 값으로 표시하는 git log --oneline
으로 사용하는 것이다.
해당 명령어를 입력하면 그동안의 commit을 확인할 수 있다.
가장 상단에 위치하고 HEAD가 있는 곳이 최근에 push한 commit이다.
GitHub 해당 Repository에서 History를 눌러 확인할 수 있다.
가장 상단에 위치하는 것이 최근에 push한 commit이다.
git reset --hard <돌아가고 싶은 commit>
git reset --hard f6cb0a6
rest hard를 쓰면 돌아가려는 이력 이후의 모든 내용은 삭제한다는 것이다.
나는 b6774f4 Delete
이전으로 돌아가고 싶으니까 f6cb0a6
을 입력했다.
그러면 로컬에는 이렇게 반영이 되었다.
로컬은 reset이 되었는데 원격 저장소는 아직 그대로이다.
아래 명령어를 입력하면 원격에도 적용된다!
git push -f origin main
여기서 f
는 force
로 원격 저장소에 강제로 변경사항을 적용시킨다는 의미이다.
그래서 함부로 쓰면 안되는 명령어라고 하니까 다른곳에 사용할 때는 조금 더 고민하고 검색하고 해야 한다.
GitHub에도 잘 적용이 되었다!
git reset --soft <commit number>
git reset --mixed <commit number>
git reset --hard <commit number>
[참고 사이트]
'[Android] drawable과 mipmap', 해구름
'[GIT] reset --(soft/hard/mixed) 쉬운 설명', 지렁이의 성장블로그
'🪄 과거로 돌아가는 방법 : reset과 revert 차이점과 사용 방법', yeahg_dev.log