깃허브의 리드미를 여러 번 수정하다가 커밋 기록이 지저분해 보여서 삭제를 하기로 했다.
커밋 기록을 되돌리는 방법으로는 Revert와 Reset이 있다.
- Revert: 커밋 취소(revert 기록도 history에 누적)
- Reset: 커밋 삭제(history까지 제거)
이 포스트에서는 커밋 리셋을 진행해보려고 한다.
커밋 리셋 방법
GitHub Desktop을 이용할 건데, 해당 프로그램을 사용하지 않고 작업을 진행할 리포지토리의 로컬 경로에서 터미널을 실행해도 무방하다.
메뉴의 File > Clone Repository 를 선택한 후 가져올 리포지토리의 url을 입력하면 지정한 경로로 프로젝트가 저장된다.
리포지토리를 가져온 것을 확인하면 Repository > Open in Terminal을 실행한다. (Windows - Open in Git Bash)
다음과 같이 명령어를 입력하면 해당 아이디 이후의 커밋 내역이 삭제된다.
git reset commitId
커밋 히스토리를 보면 커밋 내용과 커밋 아이디(편의상 커밋 아이디라 호칭을 붙이겠음)가 있다.
`git reset 25987f9`를 입력하면 해당 커밋의 이후 기록인 3월 6일 커밋이 모두 사라진다.
그리고 깃허브에 변경사항을 강제로 반영해야 하는데, 이 명령어는 실행 후 되돌릴 수 없으니 주의해야 한다. 🚨
git push origin +main
커밋 히스토리를 보면 커밋이 사라져있는 것을 확인할 수 있다.
참고