작업 중 git push를 한 후에 commit을 잘못해서 다른 파일까지 수정되거나 이름이 바뀌는 문제가 생길 수 있다.
이때 아래 단계를 차근차근 따라 하면 깔끔하게 복구할 수 있다.
git에 하나의 폴더만 commit하려 했는데 다른 폴더들까지 같이 올라간 상황
또는
commit 메시지는 하나의 폴더에 관련한 내용인데 실제로 다른 파일까지 push된 상황
git reset --soft HEAD~1
최근 1개의 commit을 되돌림
수정한 파일들은 그대로 유지됨
즉, “commit만 취소” 상태
git reset # 모든 파일을 unstaged 상태로 되돌림
git add '폴더' # 업로드를 원하는 폴더만 staging
git commit -m "DS_08 문제 해결"
git push -f
⚠️ -f(force)는 원격 저장소의 기록을 덮어쓰므로,
혼자 작업할 때만 사용하는 게 안전하다.
| 옵션 | 설명 | 예시 |
|---|---|---|
--soft | commit만 취소, 변경 내용은 staging 상태 유지 | ✅ commit만 지우고 수정은 남김 |
--mixed | commit과 staging 취소, 파일은 수정 상태 유지 | 🟨 git status에서 “modified”로 남음 |
--hard | commit + 수정 내용 모두 제거 | ❌ 되돌릴 수 없음 (주의!) |
실수로 잘못 commit/push해도 git reset --soft HEAD~1 → 필요한 파일만 add → git push -f 순서로 해결 가능하다.
특히 혼자 작업 중이라면 force push도 문제없지만, 협업 중이라면 git revert를 사용하는 게 안전하다.