Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 블로그

[GitHub] 가장 최근 커밋 삭제 본문

Project

[GitHub] 가장 최근 커밋 삭제

싱숭셩숭 2024. 9. 12. 16:50

Git reset 명령어: 최근 커밋을 히스토리에서 깔끔하게 삭제

0. 예시 시나리오

최근 커밋에서 실수한 내용을 되돌리고, 작업 파일을 수정한 뒤 다시 커밋하고 싶다면

git reset --soft HEAD~1  # 최근 커밋 삭제 (스테이징 상태 유지)
# 수정 작업 후
git add .
git commit -m "Fix recent commit"
git push origin main --force  # 원격 푸시(강제)

1. git reset으로 최근 커밋 삭제

-hard 옵션

git reset --hard HEAD~1
  • 커밋과 작업 파일 내용 모두 삭제
  • 실행하면 최근 커밋과 함께 커밋된 파일의 변경 내용도 완전히 복구된다
  • 삭제된 파일을 되돌릴 수 없으므로 신중히 사용해야 함

-soft 옵션

git reset --soft HEAD~1
  • 커밋만 삭제, 작업 파일은 스테이징 상태로 유지
  • 실행 결과 :
    • 최근 커밋 삭제
    • 파일은 여전히 git add된 상태로 남아 있음.
    • 바로 새로운 커밋을 만들거나 수정한 뒤 다시 커밋할 수 있음.
  • 사용 시점 :
    • 커밋 메시지를 수정하거나, 작업 내용을 추가한 뒤 새롭게 커밋하고 싶을 때

-mixed 옵션

git reset --mixed HEAD~1
  • 커밋 삭제, 스테이징 상태 초기화
  • 실행 결과 :
    • 최근 커밋 삭제
    • 파일 변경 내용은 작업 디렉터리에 남아 있지만, 스테이징 상태에서 해제됨
  • 사용 시점 :
    • 어떤 파일을 다시 git add할지 선택적으로 조정하고 싶을 때

옵션별 요약

옵션 커밋 삭제 git add 상태 파일 변경 내용
--soft 삭제 유지 유지
--mixed 삭제 초기화 유지
--hard 삭제 초기화 삭제

2. 주의사항 : 원격 저장소에 이미 푸시한 커밋을 수정할 경우

git push origin main --force
  • 먼저 로컬에서 git reset 으로 커밋을 수정하거나 삭제한 뒤, 강제 푸시를 해야 한다
  • 하지만 이 방법은 다른 팀원이 공유 중인 작업을 망칠 위험이 있으므로, 협업 중이라면 팀원과 상위 후 사용해야 함

추가 팁

  • 안전한 작업을 위해 git status와 git log를 자주 확인
git log --oneline
git status

'Project' 카테고리의 다른 글

[GitHub] 뱃지로 Readme.md 꾸미기  (3) 2024.11.15
[GitHub] 포크(Fork)  (0) 2024.11.14
[GitHub] 레포지토리 프로젝트 접근 방법  (2) 2024.11.14
[GitHub] 브랜치 협업 방법  (0) 2024.09.10
[React] 협업 시작하기  (0) 2024.07.17