| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 시스템설계
- UXUIPrimary
- UXUI챌린지
- 디자인교육
- Be
- 백준
- 백엔드 부트캠프
- KDT
- 디자인챌린지
- baekjoon
- 오블완
- 국비지원교육
- UXUI기초정복
- 오픈패스
- 환급챌린지
- mysql
- JPA
- 국비지원취업
- 백엔드개발자
- 오픈챌린지
- 디자인강의
- Spring
- 부트캠프
- Java
- 국비지원
- OPENPATH
- 티스토리챌린지
- API
- 내일배움카드
- 패스트캠퍼스
- Today
- Total
군만두의 IT 개발 일지
[Git] 특정 커밋으로 되돌리기 - git reset --hard 및 강제 푸시 본문
목차
📌 요약
프리코스 1주차 미션 진행 중에 branch가 꼬이는 문제가 발생했다. git pull만으로는 해결이 안 되는 상황이었다. 검색 후 이전 버전으로 영구 이동하기로 했다. 삭제하고 싶은 커밋 메시지가 있는 바로 전 버전으로 이동했다.
📌 내용
아래 순서대로 진행하면 원하는 커밋 시점으로 되돌릴 수 있다.

1. 커밋 이력 확인
먼저 아래 명령어로 커밋, 체크아웃, 머지 등의 전체 이력을 확인한다. 돌아가고 싶은 커밋의 해시 코드를 여기서 찾는다.
# 커밋, 체크아웃, 머지 등의 이력 확인
git reflog
2. 원하는 버전으로 되돌리기
두 가지 방법 중 하나를 선택하여 실행한다.
# 최근에서 n만큼 돌아가기
git reset --hard head~{n}
# 해시 코드에 해당하는 commit으로 돌아가기
git reset --hard {해시 코드}
⚠️ --hard 옵션은 해당 커밋 이후의 변경 사항을 완전히 삭제한다. 복구가 불가능하므로 신중하게 사용해야 한다.
3. 커밋
되돌린 상태에서 필요한 작업을 마친 뒤 커밋한다.
git commit -m "commit messages"
4. 원격 저장소에 강제 푸시
로컬의 변경 이력을 원격 저장소에 강제로 반영한다.
# 원격 저장소에 강제 푸시
git push origin [branch name] -f
# 또는
git push origin +[branch name]
⚠️ 강제 푸시(-f)는 원격 저장소의 이력을 덮어쓴다. 협업 중인 브랜치에서는 팀원과 반드시 공유 후 사용해야 한다.
📌 참고사이트
1) developnote, "[Git] 특정 버전으로 되돌리기", https://developnote.tistory.com/149
[Git] 특정 버전으로 되돌리기
Git을 사용해 협업하다 보면 이전 commit으로 되돌아갔다가 다시 작업을 수행하거나 영영 프로젝트를 되돌려야 할 때가 있다. 그래서 일시적으로 특정 버전으로 되돌아가는 방법과 영구적으로 특
developnote.tistory.com
2) Heee's Development Blog, "[Git] git add 취소하기, git commit 취소하기, git push 취소하기", https://gmlwjd9405.github.io/2018/05/25/git-add-cancle.html
[Git] git add 취소하기, git commit 취소하기, git push 취소하기 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'문서 > Git' 카테고리의 다른 글
| [GitHub] github-readme-stats 오류 해결 - Vercel fork 배포 및 Deployment 캐시 문제 (0) | 2025.11.27 |
|---|---|
| [GitHub] 프로필 README.md 꾸미기 - 뱃지, Stats, 잔디 위젯 추가 방법 (0) | 2025.02.15 |