어제의 나....반성해!!😭
어제 개인과제로 만든 자기소개 앱 파일을 정리하면서 필요없는 것들을 삭제했었다.
그런데 오늘 앱을 실행하려는데 이런 에러가 떴다.

그땐 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